In diesem Artikel wird hauptsächlich die Integration von Maven, Mybatis und Spring MVC (Bilder und Texte) von Java Framework Construction vorgestellt. Es wird mit Ihnen geteilt. Die Details sind wie folgt:
SSM (Spring+SpringMVC+MyBatis), derzeit eine relativ Mainstream-Architekturlösung auf Unternehmensebene. Das Standard -MVC -Designmodell unterteilt das gesamte System in vier Ebenen: Schicht anzeigen, Controller -Ebene, Serviceschicht und DAO -Schicht. SpringMVC wird für die Anforderung für die Weiterleitung und das Ansehen von Anfrage verantwortlich, Spring Implements Business Objize Management und MyBatis wird als Datenobjekt -Persistenz -Engine verwendet.
Rahmendetails
Spring ist ein leichter Java -Entwicklungsrahmen, das zur Lösung der Komplexität der Entwicklung von Unternehmensanwendungen erstellt wurde. Der Zweck von Spring beschränkt sich nicht auf die serverseitige Entwicklung. Aus Einfachheit, Testbarkeit und lockerer Kopplungsperspektive kann jede Java -Anwendung vom Frühjahr profitieren. Einfach ausgedrückt ist die Feder eine leichte Inversion der Kontrollinversion (IOC) und der § orientierten (AOP) Container-Framework.
SpringMVC ist ein nachfolgendes Produkt von SpringFramework, das die Rollen von Controllern, Modellobjekten, Disponenten und Handler -Objekten trennt. Diese Trennung erleichtert es einfacher, sich anzupassen.
MyBatis ist ein Java-basierter Persistenzschicht-Framework. MyBatis bietet ein Persistenzschicht -Framework, einschließlich SQL -Karten und Datenzugriffsobjekte (DAO), die die manuelle Einstellung fast aller JDBC -Code und -Parameter sowie das Abrufen von Ergebnismengen beseitigt. MyBatis verwendet einfache XML oder Anmerkungen zur Konfiguration und RAW -Zuordnungen, um Schnittstellen und Java zu Aufzeichnungen in der Datenbank zu kartieren.
1. Download Eclipse
Laden Sie http://www.eclipse.org/downloads/packages/eclipse-ide-java-eeedevelopers/marsr herunter
Wählen Sie die gewünschte Version
2. Erstellen Sie ein neues Maven -Projekt
Wählen Sie Datei> Neues> Maven -Projekt aus
Sie können die folgende Schnittstelle sehen
Klicken Sie auf Weiter, um die folgende Schnittstelle anzuzeigen. Wir wählen Maven-Archetype-Webapp
Klicken Sie auf Weiter, um zu sehen. Die Gruppen -ID ist der Paketname und die Artefakt -ID ist der Projektname. Hier geben wir Gruppen -ID = com.cjt, Artefakt -ID = MyMaven ein.
Klicken Sie schließlich auf Fertig stellen, um das Projekt erfolgreich zu erstellen
3. Vorbereitung vor dem Projektbetrieb
Nach dem Erstellen eines neuen Projekts sehen Sie einen Fehler, der durch den Build -Pfad und das Versäumnis, das Javaee -Paket einzuführen, verursacht wird.
1) Stellen Sie den Build -Pfad ein
Klicken Sie mit der rechten Maustaste auf das Projekt> Build Pfad-> Konfigurieren Sie den Build-Pfad…
Wählen Sie dann Bibliotheken aus
Maven wählt standardmäßig eine Bibliothek aus. Das ist falsch. Doppelklicken wir auf dies, um zu bearbeiten.
In der folgenden Schnittstelle wählen wir alternative JRE- oder Workspace -Standard -JRE. Hier wählen wir alternative JRE.
2) Führen Sie das Javaee -Paket ein
Einführung des Javaee -Pakets auf pom.xml
<!-Java ee Jar-Paket importieren-> <depeaponcy> <gruppe> Javax </Groupid> <artifactid> javaee-api </artifactid> <version> 7.0 </Version> </abhängig>
4. Einstellungen für Projektkonfigurationsdateien
1) Setzen Sie Pom.xml
Wir haben jetzt pom.xml eingerichtet und das JAR -Paket heruntergeladen. Dieser Prozess kann etwas langsam sein
Pom.xml:
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cjt</groupId> <artifactId>MyMaven</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>TestMaven01 Maven WebApp </name> <URL> http://maven.apache.org </url> <properties> <!-Spring Version Nummer-> <Spring.version> 4.0.2.Release </spring.version> <!-MyBatis Versionsnummer-> <mybatis.version> 3.2.6 </Mybatis..-log4J-Packung-Log4J-Packung-MYBATIS..-MYBATIS. <Slf4J.Version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </Eigenschaften> <Abhängigkeiten> <DEeichnen> <GroupId> junit </GroupID> <artifactID> junit </artifactid> <version> 3.8.1 </fusion> </cePec> </teures> <Version> </rot> </fusion> </fusion> </scope> </fusion> <Version> </usw.1> </fusion> </scope> </teures> <Version> </rot> </fusion> </fusion> </scope> <! Java ee JAR-Paket-> <De vorstellen> <gruppe> javax </GroupId> <artifactId> javaee-api </artifactid> <version> 7.0 </Version> </abhängig> <!-Spring Corpaket-> <Epparchcy> <gruppe org. <version> $ {spring.version} </Version> </abhängig> <depeopecy> <GroupId> org.springFramework </Groupid> <artifactId> Spring-Web </artifactId> <version> $ {Spring.version} </Version> </abhängig> <gruppe <gruppe> <gruppe> org.springFramework </gruppen </gruppen </gruppen </gruppen> </gruppe org.spring. <artifactId> Spring-oxM </artifactId> <version> $ {Spring.version} </Version> </abhängig> <depeopecy> <gruppe> org.springFramework </Groupid> <artifactid> Spring-Tx </artifactId> <version> $ {Spring.version} </Version> </vgl. <SupructId> org.springFramework </gruppeId> <artifactId> Spring-jdbc </artifactId> <version> $ {Spring.version} </Version> </abhängig> <abhängigkeit> <GroupId> org.springFramework </GroupId> <artifactid> Spring-Webmvc </artifactid> </artifactId> {-version> {version $ -Webmvc </artifactId> </artification> {{-version $ -Webmvc </artifactId> </artifact> </artifactId> </ash> {version> {version $ {version $ · · · · · · · · · · </abhängig> <depeencing> <gruppe> org.springFramework </Groupid> <artifactId> Spring-aop </artifactId> <version> $ {Spring.version} </Version> </abhängig> <depeopcy> <gruppeId> org.springFramework </gruppe </gruppe <artifactid> fed> fed> fed> fed artifactid> artifactid> fed> fed> artifactid> artifactId> artifactid> artifactId> artifactid> artifactId> artifactId> <version> $ {Spring.version} </Version> </abhängig> <depeopcy> <GroupId> org.springFramework </Groupid> <artifactId> Spring-Test </artifactID> <Version> $ {Spring.version} </Version> </abhängig> <! <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring package--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- Import java ee jar package --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- Import Mysql database link jar package --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version> 5.1.30 </Version> </abhängig> <!-Importieren Sie das JAR-Paket von DBCP, um die Datenbank in ApplicationContext zu konfigurieren. <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- Log file management package --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- Format Das Objekt zur Erleichterung der logarithmischen Ausgabe-> <Depopentcy> <gruppe> com.alibaba </gruppeId> <artifactId> fastjson </artifactId> <version> 1.1.41 </Version> </abhängig> <depeopy <version> $ {SLF4J.VERSION} </Version> </abhängig> <depeaponcy> <gruppe> org.slf4j </gruppenintenz> <artifactId> SLF4J-log4j12 </artifactID> <version> $ {SLF4J.version} </Version> </ellingcency> </</elling ublycy> <! <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <!-- Upload component package --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </abhängig> <depelzung> <gruppe> commons-io </GroupId> <artifactId> commons-io </artifactId> <version> 2.4 </Version> </abhängig> <depectIncy> </gruppeId> commons-codec </gruppId> <artifactid> commons-codec </artifactid> </fusion> 1.9 </ussion> 1.9 </ussion> 1.9 </ussion> 1.9 </</</</</</</</</Version> 1.9 </ivercy> </fusion> 1.9 </</ivery> </fusion> 1.9 </</ivercy> </fusion> 1.9 </</is is is is is is is is is. <Dendname> testMaven01 </finalName> </build> </project>2) Erstellen Sie jdbc.properties
Driver = com.mysql.jdbc.driverurl = jdbc: mysql: // localhost: 3306/testusername = rootPassword =#Definieren Sie die anfängliche Verbindungsnummer initialSize = 1#Definieren Sie die Maximum -Verbindungsnummer MaxActive = 20#maximal maximal maxidle Definieren Sie minimal minimal minimal minimal minimal minimal minidle 1#######maximal maxwait maxWait = 20#minimal minimal minimal minidle minidle 1######maximal maxwait maxwait = 20#minimal minimal minimal minidle definine maxade maximal maxwait
3) log4j.properties
### Set log Level #### log4j.rootlogger = debug, stdout, d, elog4j.rootlogger = debug, stdout, d ### Ausgabe an die Konsole ### log4j.appender.stdout = org.apache.log4j.consoleapender.appender.Appender.Appender.Appender.Appender.Appender.Appender.Appender.Appender.Appender.Appenders System.outlog4j.appender.stdout.layout = org.apache.log4j.patternLayout#log4j.appender.stdout.layout.ConversionPattern = %d {Absolute} %5p %c {1}: %l - %m %Nlog4J.Appender.Stdout.Layout.Conversion. %-d {yyyy-mm-dd hh: mm: ss} [%c]-[%p]%m%n ### Ausgabe an die Protokolldatei ### log4j.appender.d = org.apache.log4j.dailyrollingFileAppenderLog4j.appender.file = $ {springmvc.root} /web-inf/logs/log.Loglog4j.appender.d.append = Truelog4J.Appender.d.Threshold = Debug log4j.appender.d.layout = org.apache.log4j.patterlayoutlog4j.appender.d.d.Layout.Layout.Layout.Patterlayoutlog4J.Appender.D.Layout.Layout.Layout.Layout.Layout.Pattern.Patterlayoutlog4j.Appender.D.Layout.Layout.Layout.Layout.Layout.Layout.Patter-= %-D {YYYY-MM-DD HH: MM: SS} [ %t: %R]-[ %p] %M %N ### Ausnahmeinformationen speichern, um die Datei zu trennen ### log4j.appender.d = org.apache.log4j.dailyrollingFileAppenderLog4j.appender.d.File = $ {springmvc.root} /web-inf/logs/error.log log4j.appender.d.append = Truelog4j.appender.d.Threshold = Fehler log4j.appender.d.d.layout = org.apache.Log4j.PatternLayoutlog4j.appender.d.d.d.d.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.- %-d {yyyy-mm-dd hh: mm: ss} [ %t: %r]-[ %p] %m %n4) Spring-Mvc.xml
<? xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://www.spingframework.org/schema http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/context/context/context/contex/context/contex/contex/contex/context/context/contex/conted./Sconted. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <!-automatisch das Paket scannen. Base-Package = "com.cjt.controller"/> <!-Vermeiden Sie Download-Dateien, wenn IE AJAX ausführt und zu JSON zurückkehren-> <bean id = "mapingjacksonHttpMessageConverter"> <Eigenschaftsname = "SupportediDiTypes"> <Liste> <Wirast> assicate> tection> tection> tection> tection> </ba./baHr. Starten Sie die SpringMVC-Annotationsfunktion, um die Zuordnung von Anforderungen und Annotationen-Pojos zu vervollständigen-> <bean> <Eigenschaftsname = "MessageConverters"> <list> <ref bean = "mapingjacksonhttpMessageConverter"/> <!-JSON-Konverter-> </list> </assoziiert. <bean> <!-Mein Verständnis der Konfiguration hier ist, die nach der Methode der nachfolgende Aktion zurückgegebene Zeichenfolge automatisch zu einer verfügbaren URL-Adresse zu werden-> <Eigenschaft name = "Präfix" value = "/web-inf/jsp/"/> <Eigenschaft name = "Suffix" value = ". JSP. Wenn Sie kein Datei -Upload verwenden, müssen Sie diese nicht konfigurieren. Wenn Sie nicht übereinstimmen, müssen Sie das Paket für Upload-Komponenten in der Konfigurationsdatei nicht einführen-> <bean id = "multipartresolver"> <!-Standard-Codierung-> <Eigenschaft name = "defaultCoding" value = "utf-8" /> <!-Maximum-Datei-> <Property-Name = "MaxuploadSize". In Memory -> <Eigenschaft name = "MaxinMemorySize" value = "40960"/> </bean> </beans>
5) Spring-Mybatis.xml
<? xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://www.spingframework.org/schema http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/context/context/context/contex/context/contex/contex/contex/context/context/contex/conted./Sconted. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <!-Automatic Scan-> <CONTEXT: COMPONENT-SCANCUCUCUCUCUCUCUCUCUCUCUCUCUCUCATION =" COM.CJJT.SIVICE "/> COMPONENT: <bean id="propertyConfigurer" > <property name="location" value="classpath:jdbc.properties" /> </bean> <bean id="dataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <!-- Initialize the connection size --> <property name="initialSize" value="${initialSize}"></property> <!-- Maximum number of connection pools--> <property name="maxActive" value="${maxActive}"></property> <!-- Maximum free connection pool --> <Eigenschaft name = "maxidle" value = "$ {maxidle}"> </property> <!-minimal idle Verbindungspool-> <Eigenschaft name = "minidle" value = "$ {minidle}"> </Property> <! MyBatis, keine myBatis-Konfigurationszuordnung-> <bean id = " Wenn sich die DAO-Schnittstelle befindet, findet Spring die Klasse automatisch darunter-> <bean> <Eigenschaft name = "Basepackage" value = "com.cjt.dao"/> <Property name = " <bean id = "transactionManager"> <Eigenschaft name = "dataSource" ref = "dataSource"/> </bean> </beans>Alle oben genannten Dateien werden im Ressourcenordner erstellt
5. Generieren Sie den Datenbankcode automatisch
1) Erstellen Sie eine neue Tabelle
Zunächst erstellen wir eine neue Tabelle user_t, und die Felder sind wie folgt:
2) Paket herunterladen
Download-Pakete beinhalten: mybatis-3.2.6.jar , mybatis-generator-core-1.3.3.jar, mysql-connector-Java-5.1.39-in.jar
3) Ausführen - automatisch Code generieren
Erstellen Sie einen neuen Ordner, einschließlich der folgenden Dateien
GeneratorConfig.xml ist die XML -Datei, die den Code generiert, und der Inhalt lautet wie folgt:
<? <!-Datenbanktreiber-> <classpathEntry location = "mysql-connector-Java-5.1.39-bin.jar"/> <context id = "db2tables" targetRuntime = "mybatis3"> <commentgenerator> <Property name ". NAME = "SuppressAllComentments" value = "true"/> </commentgenerator> <!-Datenbankverbindungs-URL, Benutzername, Passwort-> <jdbcconnection driverClass = "com.mysql.jdbc.driver" connectionurl = "jdbc: MySQL: // localHost: 3306/test" teast "teast =" göttliche "kennzeichnungen <Javatyperesolver> <Eigenschaft name = "ForceBigDecimals" value = "false"/> </javatyperesolver> <!-Generieren Sie den Paketnamen und den Ort des Modells-> <JavamodelGenerator targetPackage = "com.cjt.domain" targetProject = "src"> < name = "trimstrings" value = "true"/> </javamodelGenerator> <!-Generieren Sie den Paketnamen und den Speicherort der Zuordnungsdatei. des dao-> <javaclientGenerator type = "xmlmapper" targetPackage = "com.cjt.dao" targetProject = "src"> <Eigenschaft name = "enableSubpackages" value = "true"/> </javaclientGenerator> <! <table tableName = "user_t" domainObjectname = "user" EnableCountByExample = "false" enableUpdateByExample = "false" enableTByExample = "false" enableByExample = "FALSE" SELTYEMPLEGEGEBOTE = "Falsch"> </table> </context> </visualConfiguration>
Anschließend verwenden wir den Befehl cmd, um den neu erstellten Ordner einzugeben und einzugeben:
Java -Jar MyBatis -Generator -Core -1.3.3.jar -configfile Generatorconfig.xml -Overwrite
Schließlich wird der Code generiert.
Hinweis: Der Code wird hier automatisch über die Befehlszeile generiert, und die Leser können ihn auch über das Eclipse-Plug-In generieren.
6. Code Start
Erstellen Sie wie folgt ein neues Paket: ((Die Pfeile werden alle oben automatisch generiert.)
IUSERService.java
public interface iuserService {public user getUserById (int id); }UserServiceImpl.java
@ServicePublic Class UserServiceImpl implementiert IUSERService {@autowired private iUserdao userDao; public UserServiceImpl () {System.out.println ("userServiceImpl"); } public User getUserById (int id) {return userDao.SelectByprimaryKey (ID); }}UserController.java
@Controller@RequestMapping ("/user") public class userController {public UserController () {System.out.println ("UserController"); } @Resource private iuserService userService; @RequestMapping ("/showuser") public String toIndex (httpServletRequest -Anforderung, Modellmodell) {System.out.println ("UserController ShowUser"); int id = integer.parseInt (request.getParameter ("id")); User user = userService.getUserById (ID); model.addattribute ("Benutzer", Benutzer); zurück "Showuser"; }}Erstellen Sie ein neues Verzeichnis JSP unter Web-INF und erstellen Sie unten eine neue Datei showuser.jsp
showuser.jsp
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8" import = "java.util.*, com.cjt.domain. "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body> ${user.userName}</body></html>Schließlich web.xml anhängen
<? xsi: scheMalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-dd.-NApp-d.-NApp-d.-NApp-d.-NApp-d.-NApp- Created Web Application</display-name> <!-- Spring and mybatis configuration files --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mybatis.xml</param-value> </context-param> <!-- Encoding filter--> <filter> <filter-name>encodingFilter</filter-name> <Filter-Klasse> org.springFramework.web.filter.CharactercodingFilter </Filter-Klasse> <Async-Supported> true </async-supportiert> <init-param> <param-name> codieren </param-value> utf-8 </param-valing </param-valing </param-valing </</init-param> </param-valing </param-valing </param-valing <Filter-name> codierungfilter </filter-name> <url-pattern>/*</url-pufter> </filter-mapping> <!-Spring Listener-> <Listener-Klasse> org.springframework <Hörer-Klasse> org.springframework.web.util.InrospectorCleanuplistener </Listener-Klasse> </Listener> <!-Spring MVC Servlet-<Servlet> <Servlet-name> SpringMvc </servlet-name> <servlet-class> org. <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-mapping> <servlet-name> SpringMVC </Servlet-name> <!-Hier können Sie *.do konfigurieren, entsprechend der Suffix-Angewohnheit von Streben-> <url-pattern>/</url-pattern> </servlet-mapping> <Welcome-File-List> </wand-applist> </Welcome-List> </webile-Appl.
Oben ist die Codegenerierung vollständig.
Projekte können heruntergeladen werden: https://github.com/cjt321/mavenspirngmvcmybatis
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.