Zusätzlich zu Strebens verfügt das Mainstream Web MVC -Framework derzeit auch für Spring MVC. Dies liegt hauptsächlich daran, dass Spring MVC relativ einfach zu konfigurieren und sehr klar zu verwenden ist. Es ist sehr flexibel, hat eine gute Integration in den Frühling und unterstützt erholsame APIs besser als Streben.
MyBatis ist eine verbesserte Version von Ibatis. Als alter Rivale von Winterschlaf ist es ein anhaltendes Schicht -Framework, das SQL, gespeicherte Verfahren und fortgeschrittene Zuordnungen anpassen kann.
Der Hauptunterschied zum Hibernate besteht darin, dass MyBatis halbautomatisch ist, während der Hibernate vollautomatisch ist. Wenn die Anwendungsanforderungen immer komplexer werden, scheint automatisierter SQL ungeschickter zu sein.
Seit ich vor einiger Zeit ein Projekt übernommen habe, wollte ich SpringMVC dazu verwenden, also habe ich angefangen, das Spiel mit einer Übungseinstellung zu integrieren. Personen, die häufig Frames erstellen, sollten wissen, dass der Kern des Frame -Erbaus Konfigurationsdateien sind. Daher poste ich hauptsächlich einige Konfigurationsdateien -Codes. Gleiches gilt für mich, nachdem ich die Konfigurationsdatei geschrieben habe, habe ich den Fehler ausgeführt und das Glas hinzugefügt. Hier sind die JAR -Pakete, die ich verwende (sollte am wenigsten sein):
HINWEIS: Auf dem Bild oben sind einige zusätzliche Gläser, beispielsweise der von mir verwendete Datenbankverbindungspool ist Alibabas Druid- und Protokoll-Frame-basierter Logback, sodass verwandte Gläser eingeführt werden. Die Verwendung und Konfiguration dieser beiden Frameworks ist sehr einfach, daher werde ich hier nicht auf Details eingehen.
1. Integrieren Sie SpringMVC
SpringMybatis-servlet.xml:
<? xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/sping/sping/sping/sping/sping/sping/sping/sping/sping/sping/sping/sping.-contexte.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "<! Scannen Sie den Paketnamen, wodurch die automatische Erkennung von Komponenten wie den kommentierten Controller die automatische Erkennung von Komponenten-scan-Basispackungen = "com.alibaba.Controller" /> <Kontext: Komponent-scan Base-Package = "Com.Alibaba.Service" /> <! name = "prefix" value = "/web-inf/jsp/"/> <Eigenschaft name = "suffix" value = ". jsp"/> <! Pfad-> <MVC: Mapping path = "/user/**"/> <mvc: maping path = "/test/**"/> <bean> </bean> </mvc: Interceptor> <! </beans>
2. Integrieren Sie MyBatis
Spring-dao.xml:
<? xmlns: mybatis = "http://mybatis.org/schema/mybatis-Spring" xmlns: context = "http://wwww.springframework.org/schema/context" xsi: Schemalocation = "http./wwe http://www.springframework.org/schema/beans/spring-beans.xsd http://mybatis.org/schema/mybatis-Spring http://mybatis.org/schema/mybatis-Spring http://www.springframework.org/schema/context http://www.springFramework.org/schema/context/spring-context.xsd "> <!-Die Klasse unter diesem Paket unterstützt Annotationen, die als ADD-MACKPER-MACKPER-MACKPER-MACKPER-MACKPER-Klassen angezeigt werden. kann automatisch eingeführt werden-> <mybatis: scan base-package = "com.alibaba.dao"/> <!-Eigenschaftsdateien einführen-> <context: Eigenschafts-Placeholder locum = "classPath: configuration.properties"/> <!-Datenbankverbindung-> <bean id = "dataSource" initmethod "init" init "init" init "init" init "init" init "init" init "init" init " value = "$ {jdbc.url}"/> <Eigenschaft name = "userername" value = "$ {jdbc.username}"/> <Eigenschaft name = "password" value = "$ {jdbc.password}"/> <!-Initialisierungsgröße, minimal, maximal-> <Eigenschaft = "InitialSize"> </value> </value> </value> </value> </value> </value> </value> <Eigenschaft ". name = "maxActive"> <wert> 5 </value> </property> <Eigenschaft name = "minidle"> <value> 1 </value> </property> <!-Die Zeit zum Erhalten des Verbindungswarts-Timeouts-> <Eigenschaft name = "maxwait"> <value> 60000 </value> </property> <! name = "filters"> <wert> STAT </value> </property> <!-Konfigurieren Sie, wie lange es dauert, um ein Nachweisintervall durchzuführen, um die Leerlaufverbindung zu erkennen, die in Millisekunden geschlossen werden muss-> <Eigenschaft name = "TimeBetweenWeenevictionRunsmillis"> <wert> 60000 </value> </Property> <! name = "mineVictableableIdletImemillis"> <wert> 300000 </value> </property> <!- <Eigenschaft name = "validationQuery"> <value> select 'x' </value> </property> <Eigenschaft name = "testen idle name = "testonReturn"> <value> false </value> </property> <Eigenschaft name = "PoolpreparedStatements"> <wert> true </value> </property> <Eigenschaft name = "maxopenPreeParedStatements"> <value> 20 </value> </prob. name = "dataSource" ref = "dataSource"/> </bean> </beans> 3.Web.xml integriert SpringMVC und MyBatis
<? xmlns: web = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" Version = "3.0"> <! / statisches / Verzeichnis. Zum Beispiel, wenn Sie http: //localhost/foo.csss besucht haben, jetzt http: //localhost/static/foo.css-> <!-keine statischen Dateien abfangen-> <Servlet-Maping> <Servlet-Name <URL-BUATTER>/CSS/*</URL-BUATTERN> <URL-PATTERN>/Images/*</url-pattern> <url-pattern>/fonts/*</url-pattern> </Servlet-Mapping> <!-Charakter-Set-> <filter-name> codieren> </filter-name> </filter-name> -Name <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <init-param> <param-name>forceEncoding</param-name> <param-value> true </param-value> </init-param> </filter> <filter- mapping> <filter-name> codingFilter </filter-name> <url-puftern>/*</url-puffer> </filter-mapping> <! WEB-INF directory, and defines the relevant beans there, overriding any beans defined globally --> <servlet> <servlet-name>springMybatis</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMybatis</servlet-name> <!-- All requests will be processed by DispatcherServlet--> <url-pattern>/</url-pattern> </servlet-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/spring-*.xml</param-value> . <Servlet-Class> com.alibaba.druid.support.http.statViewServlet </Servlet-Class> </Servlet> <Servlet-Mapping> <Servlet-NAME> DruidStatView </Servlet-Name> <URL-PATTER>/Druid/*</url-pattern> </servlet-maping <Fehlercode> 404 </fehlercode> <position> /error/404.jsp </location> </fehler-page> <fehler-page> <fehlercode> 500 </fehler-code> <position> /error/500.jsp </location> </fehlerpage> </web-App>
4.Logback.xml -Protokollkonfiguration
<? Level = "Trace" /> <logger name = "com.alibaba.controller.TestController" Level = "Trace" /> <logger name = "org.springFramework Spring-Config, das SQL-Protokoll wird nicht angezeigt. Der Logback ist nur eine Implementierung von SLF4J-> <root Level = "Debug"> <Appender-ref ref = "stdout"/> </root> </configuration>
5. Konfiguration.Properties -Konfiguration
jdbc.url = jdbc/: mysql/: // localhost/: 3306/druid? useUnicode/= true & charakteritätsgericht/= utf-8 & zerodatetimebehavior/= convertonull jdbc.username = root jdbc.password = 123456
6. Testen Sie, ob die Konstruktion erfolgreich ist, Hintergrundcode
Melden Sie sich zunächst an, verwenden Sie Verschlüsselung, Sie können sie entfernen
Paket com.alibaba.controller; import Javax.annotation.Resource; importieren javax.servlet.http.httpServletRequest; import org.apache.commons.codec.digest.digestutils; import org.slf4j.logger; import org.slf4j.loggerfactory; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.requestMethod; import org.springframework.web.bind.annotation.requestParam; import com.alibaba.model.user; import com.alibaba.service.userservice; import com.alibaba.util.requestutil; / ** * @Author TFJ * 2014-7-26 */ @Controller Public Class SystemController {private landes logger logger = loggerfactory.getLogger (SystemController.class); @Resource Private UserService UserService; @RequestMapping (value = "/", method = requestMethod.get) public String home () {log.info ("Zurück zur Homepage!"); Rückgabe "Index"; } @RequestMapping (value = "/test/hello", method = requestMethod.get) public String testhello () {log.info ("Die Testhello -Methode ausführen!"); zurück "testhello"; } @RequestMapping (value = "/login", method = requestMethod.post) public String testlogin (httpServletRequest Request, @RequestParam String Benutzername, @RequestParam -String -Passwort) {log.info ("Die Testlogin -Methode ausführen!"). User user = userService.finduserByName (Benutzername); if (user! Request.GetSession (). setAttribute ("Benutzer", Benutzername); return "recirect:" + requestUtil.rieveVeavedRequest (); // Überspringen Sie auf Seite} else {log.info ("Kennwortfehler"); request.getSession (). setAttribute ("meldung", "Benutzername und Passwort sind falsch, bitte melden Sie sich erneut an"); Rückgabe "Login"; }} else {log.info ("Benutzername existiert nicht"); request.getSession (). setAttribute ("meldung", "Benutzername existiert nicht, bitte melden Sie sich erneut an"); Rückgabe "Login"; }}} Ich werde nicht über Service und Modell schreiben, ich werde über MyBatis 'Mapper -Klassenkarte schreiben
<? <select id = "findUserByName" resultType = "com.alibaba.model.user"> ID, Benutzername, Kennwort von sysuser wobei Benutzername = #{Benutzername} </select> </mapper> 7. Die Rezeption JSP ist hauptsächlich eine Seite, auf der Anmeldung und Login erfolgreich sind, also werde ich sie nicht schreiben
Poste einen Screenshot:
Zu diesem Zeitpunkt war die Integration von SpringMVC+MyBatis erfolgreich. Anschließend komplexe Funktionen hinzuzufügen
Dinge zu beachten
1. Die Konfigurationen von Druiden und Logback im Framework werden von der offiziellen Website kopiert, sodass sie alle die grundlegendsten sind. Die Leser können sie ignorieren oder sie können durch Datenbankkomponenten und Protokoll -Frameworks ersetzt werden, mit denen die Leser vertraut sind, wie z. B. C3P0 und Log4J.
2. Der Code verfügt über eine Berechtigungsverwaltung, dh Sie müssen sich anmelden, bevor Sie zugreifen, und dann zu der Seite springen, um nach der Anmeldung zugegriffen zu werden. Für die Berechtigungsverwaltung von SpringMVC siehe: http://www.vevb.com/article/99569.htm
3. Dieser Artikel ist der einfachste und grundlegendste Code, der aus meinem Testcode entzogen wurde. Bitte vergib mir einige der Bereiche, die nicht ausgezogen wurden.
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.