Grundkonzepte
1.1. Frühling
Spring ist ein Open-Source-Framework, ein leichter Java-Entwicklungsrahmen, das 2003 entstanden ist und aus einigen Ideen und Prototypen, die Rod Johnson in seinem Buchentwicklung und -design in seinem Buchexperten erklärt, abgeleitet wurden. Es wurde erstellt, um die Komplexität der Entwicklung von Unternehmensanwendungen zu beseitigen. Spring verwendet grundlegende Javabeans, um Dinge zu tun, die bisher nur von EJB möglich waren. Die Verwendung von Spring beschränkt sich jedoch 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.
1.2. Springmvc
Spring MVC ist ein nachfolgendes Produkt von SpringFramework und wurde in den Spring -Web -Flow integriert. Spring MVC trennt die Rollen von Controllern, Modellobjekten, Disponenten und Handlerobjekten, und diese Trennung erleichtert sie einfacher an die Anpassung.
1.3. Mybatis
MyBatis ist ein Open -Source -Projekt von Apache. Im Jahr 2010 wurde dieses Projekt von der Apache Software Foundation in Google Code verschoben und in MyBatis umbenannt. MyBatis ist ein Java-basierter Persistenzschicht-Framework. Ibatis bietet Persistenzschicht -Frameworks, einschließlich SQL -Karten und Datenzugriffsobjekte (DAO) MyBatis, die manuelle Einstellung fast aller JDBC -Code und -Parameter sowie das Abrufen von Ergebnismengen beseitigt. MyBatis verwendet einfache XML oder Anmerkungen zur Konfiguration und ursprüngliche Zuordnung, um Schnittstellen und Javas Pojos (einfache alte Java -Objekte) in Datensätze in der Datenbank zu kartieren.
Schritt 1: Erstellen Sie ein Webprojekt über Maven.
Schritt 2: Importieren Sie die POM -Datei in das JAR -Paket
(1) pom.xml
Ich habe die gesamte POM -Datei kopiert, und Sie müssen einige der Initialisierungs Dinge entfernen und die Kopie, die Sie von Ihrem eigenen POM generiert haben, aufbewahren.
<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.test</groupId> <artifactId>ssm</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>ssm 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.version> <!-Log4J-Log4j-Log4j-Log4j-Log-Lategerationspaket-> Package-> Paket-> Paket-> Paket-> Paket-> Paket-> Paket-> Paket-> Paket-> Paket-> Paket-> Paket-> Paket-> Paket-> </mybatis. <Slf4j.Version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </Eigenschaften> <DEeichtern> <Epparchentcy> <GroupID <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version> $ {spring.version} </Version> </abhängig> <depeopecy> <GroupId> org.springFramework </gruppacid> <artifactId> Spring-aOP </artifactId> <version> $ {Spring.version} </Version> </abhängig> <gruppe <gruppe> <GroupId> org.SpringFramework </gruppen </gruppen </gruppen> <gruppe org.spring. <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis core package--> <dependency> <gruppeID> org.mybatis </gruppeId> <artifactId> mybatis </artifactId> <version> $ {mybatis.version} </Version> </abhängig> <!-mybatis/Spring-Paket-> <abhängigkeit> <gruppen> org. <version> 1.2.2 </Version> </abhängig> <!-Java ee JAR-Paket importieren-> <Deponcy> <gruppe> Javax </GroupId> <artifactid> javaee-api </artifactID> <version> 7.0 </Version> </abhängig> <! <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- Import the jar package of dbcp to configure the database in applicationContext.xml --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- JSTL tag class --> <dependency> <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 objects to facilitate log output--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> <dependency> <gruppeId> org.slf4j </GroupId> <artifactId> Slf4j-api </artifactId> <version> $ {Slf4j.version} </Version> </abhängig> <depelzie <version>${slf4j.version}</version> </dependency> <!-- log end --> <!-- Input JSON --> <dependency> <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> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId> commons-codec </artifactId> <version> 1.9 </Version> </abhängig> </abhängigkeiten> <buildsSchritt 3: Schauen Sie sich die Gesamtprojektstruktur an. Lassen Sie mich zunächst erklären, dass ich hier keine verwandten Dinge über SpringMVC habe, da ich zum ersten Mal Spring-Mybatis integriere, und wenn ich testet, ob sie erfolgreich ist, integriere ich SpringMVC erfolgreich.
Schritt 4: Erstellen einer Modellklasse
Public Class User {private int id; privater Zeichenfolge Name; privates Zeichenfolgenkennwort; private Zeichenfolge Passwort2; /*Bereitstellung von Set- und Get -Methoden, ToString -Methode*/}Schritt 5: Datenbank, Benutzerdao -Schnittstelle und Mapper -Mapping -Datei erstellen
(1) Erstellen Sie eine sehr einfache Tabelle
(2) Benutzerdao -Schnittstelle
public interface userdao {user findUserById (Benutzerbenutzer);}(3) uesrmapper.xml
<? -> <Mapper Namespace = "com.ssm.dao.userdao"> <!-Benutzerinformationen basierend auf ID-> <!-ID: ID: Ein einzigartiger Anweisung identifizieren, der dem Benutzerdao-Methodenname#{}: Repräsentiert einen Platzhalter. Wenn ein einfacher Typparameter in #{} bestanden wird, ist der Name in #{} ein willkürlicher Parametertyp: Der Typ des Eingangsparameters, der dem Parameter in userDao () resultType: Der Ausgabergebern entspricht, der das gleiche wie der userdao () -Typ-> <select id = "findUserBy" ist "Parametertyp" "com.sm.sm.smodel." findUserByid "" parameterType resultType = "com.ssm.model.user"> select * from user <Where> <if test = "name!Schritt 5: Create UserService und UserServiceImpl erstellen
(1) UserService
public interface userService {public user byid (user user); }(2) UserServiceImpl
import org.springframework.stereotype öffentlicher Benutzer getUserById (Benutzer Benutzer) {return this.userdao.finduserbyId (Benutzer); }}Schritt 6: Erstellen Sie die JDBC -Datei und Protokolldatei und Protokolldatei
(1) jdbc.properties
jdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc/: mysql/: // localhost/: 3306/test? useUnicode = true && charaktercoding = utf-8jdbc.username = rootjdbc.password = root
(2) log4j.properties
log4j.rootLogger = info, Konsole, Datei #definieren Sie das Ziel des Protokollausgangs als Konsole log4j.appender.console = org.apache.log4j.conSeAppender log4j.appender.console.target = system.out #can Flexible Angabe des logius output -format, der folgenden Linie spezifiziert das spezifische Format -Log4j. org.apache.log4j.patternLayout log4j.appender.console.layout.ConversionPattern = [%c] -%m%n #When die Dateigröße erreicht die angegebene Größe, eine neue Datei wird log4j.appender.file = org. logs/ssm.log #define die maximale Dateigröße log4j.appender.file.maxFileSize = 10MB #Output SO Log. If you change it to DEBUG, it means output logs at DEBUG or above level log4j.appender.File.Threshold = ALL log4j.appender.File.layout = org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyyy-MM-dd HH/: mm/: ss}] [%c]%m%nSchritt 7: Integrieren Sie 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 "> <!-automatisch Scaning-> <Context: conconent-scan base-package =" com.SSM "---Einverstanden-scan-scan base-package =" com.SSM "/> <context: component-scan base-package =" com.ssm "/--Einverstanden-scan base-package =" com.SSM "/> <!-Einverstanden-scan-base-package =" com.SSm "---FORTUCUCUG: <bean id="propertyConfigurer" > <property name="location" value="classpath:jdbc.properties" /> </bean> <!-- 2. Database connection pool--> <bean id="dataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- integrate spring and MyBatis to manage MyBatis' SqlSessionFactory session factory through spring --> <bean ID = "SQLSessionFactory"> <!-Datenbankverbindungspool Referenz-> <Eigenschaft name = "dataSource" ref = "dataSource"/> <!-Automatisches Scannen von maping.xml-Dateien-> <Eigenschaft name = "mapperlocations" value = "classpath: com/ssm/mapfa- mapfacer/*. Der Spring befindet sich automatisch die Klasse darunter-> <bean> <Eigenschaft name = "Basepackage" value = "com.ssm.dao"/> <Eigenschaft name = " id = "TransactionManager"> <Eigenschaft name = "dataSource" ref = "dataSource"/> </bean> </beans>Schritt 8: Erstellen Sie eine Testklasse
Nach den obigen Schritten (Log4J übereinstimmt nicht und hat keine Wirkung) haben wir die Integration von Spring und MyBatis abgeschlossen, sodass wir einen Testcode schreiben können, um zu versuchen, ob es erfolgreich war.
Die Testklasse ist in SRC/Test/Java festgelegt. Wenn der Test erfolgreich ist, bedeutet dies, dass Frühling und MyBatis erfolgreich integriert wurden. Die Ausgabeinformationen werden mit Log4J in die Konsole gedruckt.
(1) Testmybatis -Testklasse
Paket ssm; import Javax.annotation.Resource; import org.apache.log4j.logger; import org.junit.test; import org.junit.runner.runwith; import org.springframework.test.context.contextconfiguration; org.springframework.test.context.junit4.springjunit4ClassRunner; importieren com.ssm.model.user; geladen werden*/ @contextConfiguration (Standorte = {"ClassPath: Spring-mybatis.xml"}) public class testMybatis {@resource (name = "userService") private UserService UserService; @Test public void test1 () {user user = new user (); user.setName ("Zhang san"); user.setPassword ("123"); User user1 = userService.getUserById (Benutzer); System.out.println (user1.toString ()); }}endlich! Der Schlüssel ist, die Hintergrundausgabe zu betrachten, die auch eine Zeit ist, um Wunder zu beobachten. Wenn das Ausgabeobjekt ausgegeben wird, bedeutet dies, dass Ihre Konfiguration und Integration erfolgreich sind!
Dann beginnen wir mit der Integration von SpringMVC
Schritt 9: Konfigurieren Sie springmvc.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.ssm.controller" /> <!-- Avoid download files when IE executes AJAX and return to JSON--> <bean id="mappingJacksonHttpMessageConverter" > <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- Start SpringMVC-Annotationsfunktion Um die Zuordnung von Anforderungen und Annotationen zu vervollständigen-> <bean> <Eigenschaftsname = "MessageConverters"> <list> <ref bean = "mapingjacksonHttpMessageConverter"/> <!-JSON-Konverter-> </list> </uswan>. <!-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. 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>
Schritt 10: Konfigurieren Sie die Datei web.xml
Die Einführung von Spring-Mybatis.xml und des konfigurierten Spring-MVC-Servlets dient zur SSM-Integration. Die beiden vorherigen Framework -Integration erforderte hier keine Konfiguration.
<? 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:springmvc.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.
Schritt 11 Endtest:
(1) Schreiben Sie zuerst Login.jsp
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <html> <kopf> <titels> Benutzeranmeldung: </title> </head> <body> <Form Action = "Login"> <Laie> Nutzer: </label-naser: </label> </type "text name = "userername"> </input> <br> <br> <label> Kennwort: </Label> <Eingabe type = "text" id = "password" name = "password"> </input> <br> <br> <Eingabe type = "value =" login "/> </by> </body> </html>
Schnittstelle:
(2) Schreiben von UserController
importieren javax.servlet.http.httpServletRequest; import org.springframework.steretype.controller; {@Resource private userDao userDao; @RequestMapping ("/jsp/login") public String login (httpServletRequest -Anforderung) {String username = request.getParameter ("Benutzername"); String password = request.getParameter ("Passwort"); User user = new user (); // den Datenbank user.setName (Benutzername) abfragen; user.setPassword (Passwort); User user = userDao.finduserById (Benutzer); // Wenn es Schüler gibt, bedeutet dies, dass das Login erfolgreich ist, wenn (Benutzer! = Null) {return "susscss"; } // Ich habe diesen JSP nicht geschrieben, solange Sie wissen, können Sie Ihre eigene Rückgabe "err";}} schreiben(3) Schließlich SUSSCSS.JSP
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <html> <body> <p> Das Kennwort für das Benutzerkonto ist korrekt. Die Anmeldung ist erfolgreich </p> </body> </html>
Perfekt!
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.