Cet article présente principalement l'intégration de Maven, Mybatis et Spring MVC (images et textes) de Java Framework Construction. Il est partagé avec vous. Les détails sont les suivants:
SSM (Spring + SpringMVC + MyBatis), actuellement une solution d'architecture de niveau d'entreprise relativement grand public. Le modèle de conception MVC standard divise l'ensemble du système en quatre couches: calque d'affichage, couche de contrôleur, couche de service et couche DAO. SpringMVC est utilisé pour être responsable du transfert des demandes et de la gestion de la vue, Spring implémente la gestion des objets commerciaux et MyBatis est utilisé comme moteur de persistance d'objet de données.
Détails du cadre
Spring est un cadre de développement Java léger créé pour résoudre la complexité du développement d'applications d'entreprise. L'objectif de Spring ne se limite pas au développement côté serveur. Du fait de la simplicité, de la testabilité et de la perspective de couplage lâche, toute application Java peut bénéficier du printemps. En termes simples, le printemps est une inversion légère de contrôle (CIO) et du cadre de conteneur axé sur la section (AOP).
SpringMVC est un produit ultérieur de SpringFramework, séparant les rôles des contrôleurs, des objets modèles, des répartiteurs et des objets de gestionnaire. Cette séparation les rend plus faciles à personnaliser.
Mybatis est un cadre de couche de persistance basé sur Java. MyBatis fournit un cadre de couche de persistance, y compris les cartes SQL et les objets d'accès aux données (DAO) qui élimine le paramètre manuel de presque tous les code et paramètres JDBC et la récupération des ensembles de résultats. MyBatis utilise des XML ou des annotations simples pour la configuration et les mappages bruts pour mapper les interfaces et Java sur les enregistrements dans la base de données.
1. Télécharger Eclipse
Téléchargez http://www.eclipse.org/downloads/packages/eclipse-ide-javaee-developers/marsr
Choisissez la version que vous souhaitez
2. Créez un nouveau projet Maven
Sélectionnez Fichier> Nouveau> Projet Maven
Vous pouvez voir l'interface suivante
Cliquez sur Suivant pour voir l'interface suivante. Nous sélectionnons maven-archetype-webapp
Cliquez sur Suivant pour voir. L'ID de groupe est le nom du package et l'ID d'artefact est le nom du projet. Ici, nous entrons dans le groupe id = com.cjt, artefact id = mymaven.
Enfin, cliquez sur Terminer pour créer avec succès le projet
3. Préparation avant le fonctionnement du projet
Après avoir créé un nouveau projet, vous pouvez voir une erreur, qui est causée par le chemin de construction et l'échec de l'introduction du package Javaee.
1) Définissez le chemin de construction
Cliquez avec le bouton droit sur le projet> Build Path -> Configurer le chemin de construction…
Puis sélectionnez les bibliothèques
Maven sélectionne une bibliothèque par défaut. C'est faux. Double-cliquez cela pour modifier.
Dans l'interface suivante, nous choisissons un autre JRE ou un espace de travail par défaut JRE. Ici, nous choisissons un autre JRE.
2) Présenter le package Javaee
Présentation du package Javaee sur pom.xml
<! - Importer le package Java EE JAR -> <dependency> <proupId> javax </rombandid> <ArtefactId> Javaee-API </ artifactId> <version> 7.0 </ version> </ Dependency>
4. Paramètres du fichier de configuration du projet
1) Définir Pom.xml
Nous configurons maintenant pom.xml et téléchargeons le package JAR. Ce processus peut être un peu lent
Pom.xml:
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <ModelVersion> 4.0.0 </ Modelversion> <proupId> com.cjt </prouvenid> <ArtifActid> Mymaven </ Artifactid> <packaging> war </packaging> <version> 0.0.1-snapshot WebApp </name> <url> http://maven.apache.org </url> <properties> <! - Numéro de version de Spring -> <printemps.0.0.2.release </sspring.version> <! - Mybatis version -> <mybatis.version> 3.2.6 </mybatis.version> <! <lf4j.version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </properties> <dependces> <dependency> <proupId> junit </prouved> <Artifactid> JUnit </ artifiCtid> </ version>. Package Java EE JAR -> <Dedency> <GroupId> javax </proncId> <ArtifActid> Javaee-API </ ArtifactId> <DERNÉRATIVE> 7.0 </DERNIERSE> </DENDENCENCE> <! - Spring Core Package -> <Dedency> Spring-Core </ ArtifactId> <version> $ {printemps.version} </ version> </ dépendance> <dependency> <proupId> org.springFramework </proncId> <ArtifActid> Spring-web </ artifactId> <De version> $ {Spring.Version} </-version> </ Dependency> <Dependance> <ProupId> ORG.SPRINGFRAMEWROWNWORK </prouprid> <ArtefactId> Spring-oxm </ artifactId> <Sease> $ {printemps.version} </ version> </ Dependency> <Dedency> <ProupId> org.springFramework </proupId> <ArtefactId> Spring-Tx </ ArtifactId> <Desentency> $ {printemps.version} </ version> </dependency> <dependency> <GroupId> org.springframework </proupId> <Artifactid> printemps-jdbc </ artifactid> <De version> $ {printemps.sversion} </ version> </pedidency> <pedigency> <proupId> org.springframework </proupId> <Artifactid> printemps. </Dependency> <Dedency> <ProupId> org.springFramework </rom grouped> <ArtifActid> Spring-Aop </RetifActid> <DERNÉRATEUR> $ {Spring.Version} </DERNIFRIENT> </DENFENCE> <Dendency> <ProupId> Org.springFramework </proupId> <ArtifActid> Spring-Context-Support </tifactId> <version> $ {printemps.version} </ version> </ dépendance> <dependency> <proupId> org.springframework </proupId> <ArtifActid> Spring-test </ artifactid> <version> $ {printemps.version} </ version> </ Dependency> <! - MyBatis Core -> <dependency> <proupid> org.mybatis </ Groupid> <ArtefactId> Mybatis </ artifactid> <DersonDe> $ {MyBatis.Version} </ Version> </ Dependency> <! - Mybatis / Spring Package -> <Dedency> <ProupID> org.mybatis </rom groupeId> <Artifactid> Mybatis-Spring </ptefactid> <version> 1.2.2. Package de jar -> <dependency> <GroupId> javax </proncId> <Ertifactid> javaee-api </ artifactid> <version> 7.0 </ version> </dependency> <! - Importez le package JAR de la base de données MySQL -> <dependency> <proupId> <version> 5.1.30 </ version> </Dependency> <! - Importez le package JAR de DBCP pour configurer la base de données dans ApplicationContext.xml -> <Dedency> <proupId> Comons-Dbcp </proncId> <ArtifActid> Commons-Dbcp </ ArtifActid> <version> 1.2.2 </De version> </Dependency> <! - JSTL CLASSION - <Dependance> </DERNIFRÉSION> <GroupId> JSTL </ GroupId> <ArtifActid> JSTL </ ArtifactId> <Dersion> 1.2 </ Version> </ Dependency> <! - Logage de gestion des fichiers journaux -> <! - Log Start -> <Dedency> <ProupId> LOG4J </rom groupeID> <ArtifActid> Log4j </ Artifactid> <version> $ {Log4j.version} </ version> <! - Format {Log4J.Version} </ version> <! L'objet pour faciliter la sortie du journal -> <dependency> <proupId> com.alibaba </prômId> <ArtifActid> FastJson </ Artifactid> <DERNÉRALE> 1.1.41 </DERNIFRIENT> </DENDENCENCE> <DENSECTENCE> <proupId> org.slf4j </proupId> <Artifactid> Slf4j-api </ artifactid> <version> $ {slf4j.version} </ version> </ dépendance> <dependency> <proupId> org.slf4j </proupId> <artifactId> slf4j-log4j12 </ artifactid> <version> $ {slf4j.version} </Depending> </Dedency> <! - LOG END -> <! <GroupId> org.codehaus.jackson </rompuprid> <Ertifactid> Jackson-Mapper-ASL </ artifactid> <version> 1.9.13 </ version> </Dependance> <! - Package de composants de téléchargement -> <Dedency> <ProupId> Comons-Fileupload </proupId> <1rsactid> COMMONS-Fileupload </letifactid> </nombre> <filtride> </Dependency> <Dedency> <GroupId> Commons-io </rompuprid> <lefactive> Commons-io </ artifactid> <version> 2.4 </ version> </Dependency> <Dedency> <ProupId> Commons-Codec </proupId> <Artifactid> Commons-Codec </ Artifactid> <version> 1.9 </DERNÉRATION> </Dependency> <FinalName> TestMaven01 </ FinalName> </ Build> </ Project>2) Créer JDBC.Properties
Driver = com.mysql.jdbc.driverurl = jdbc: mysql: // localhost: 3306 / testUserName = rootpassword = # define le numéro de connexion initial initialSize = 1 # définir le nombre maximum de connexion maxactive = 20 # de définir maximum maximum maxidle = 20 # define minimum minidle = 1 # define define
3) log4j.properties
### Set Log Niveaux #### LOG4J.ROOTLOGGER = DEBUG, STDOUT, D, ELOG4J.ROOTLOGGER = DEBUG, STDOUT, D ### Sortie vers la console ### LOG4J.APPENDRE.STDOUT = ORG.APACHE.LOG4J.CONSOLEAPPENDERLOG4J.APPENDRE.STDOUT.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.patternlayout # log4j.appender.stdout.layout.conversionpattern =% d {absolu}% 5p% c {1}:% l -% m% nlog4j.apprender.stdout.layout.conversionpattern =% -d {yyyymmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmage.conversionpattern =% -D {yyyymmmmmmmmmmmmmmmmmmmmmmmmmmmmm HH: MM: SS} [% C] - [% P]% M% N ### Sortie dans le fichier journal ### log4j.appender.d = org.apache.log4j.dailyrollingFileAppenderLog4j.appender.d.file = $ {Springmvc.root} /web-ff/logs/log.loglog4j.airs truelog4j.appender.d.threshold = debug log4j.appendender.d.layout = org.apache.log4j.patternlayoutlog4j.appender.d.layout.conversionpattern =% -d {yyyy-mm-dd hh: mm: ss} [% t:% r] - [% p] ### log4j.appender.d = org.apache.log4j.dailyrollingfileAppenderLog4j.appendender.d.file = $ {springmvc.root} /web-inf/logs/error.log log4j.appender org.apache.log4j.patternlayoutlog4j.appender.d.layout.conversionPattern =% -d {yyyy-mm-dd hh: mm: ss} [% t:% r] - [% p]% m% n4) Spring-Mvc.xml
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://www.springfrrameworkwork.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <! - Analyse automatiquement le package pour que Springmvc pense que la classe a annoté par @Controller Base-Package = "com.cjt.Controller" /> <! - Évitez de télécharger des fichiers lorsque IE exécute Ajax et retournez à JSON -> <bean id = "MappingJackSonHttpMessageConverter"> <propriété NameS = SupportEdMediaTypes "> <Sist> <value> Text / Html; CHARSET = UTF-8 </ Value> Springmvc Annotation Fonction Pour compléter le mappage des demandes et annotations Pojos -> <an Bean> <propriété name = "MessageConverters"> <sthing> <refE Bean = "MappingJackSonHttpMessageConverter" /> <! - JSON Converter -> </Sist> </prewetfrewe <! - Ma compréhension de la configuration ici est de préfixer et de suffix automatiquement la chaîne renvoyée par la méthode de l'action ultérieure pour devenir une adresse URL disponible -> <propriété name = "Prefix" value = "/ web-inf / jsp /" /> <propriété name = "suffix" value = ". Si vous n'utilisez pas de téléchargement de fichiers, vous n'avez pas besoin de le configurer. Bien sûr, si vous ne correspondez pas, il n'est pas nécessaire d'introduire le package de composant Télécharger dans le fichier de configuration -> <bean id = "MultipartResolver"> <! - Encoding par défaut -> <propriété name = "Defauntencoding" value = "utf-8" /> <! - Taille maximale du fichier -> <Propriété Name = "MAXUPLOADSIZE" Valeur = "10485760000" name = "maxinMemorySize" value = "40960" /> </bEAN> </bans>
5) printemps-mybatis.xml
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://www.springfrrameworkwork.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <! - Automatic Scan -> <context: composant-scan basage =" com.cjt.svice "/> <! id = "PropertyConfigurer"> <propriété name = "emplacement" value = "classPath: jdbc.properties" /> </ bean> <bean id = "dataSource" destrement-méthod = "close"> <propriété name = "driverclassname" value = "$ {driver}" /> <propriété name = "url" value = "$ {url}" /> <propriété name = "Url" value = "$ {url}" /> <propriété name = "usiname" Value = "$ {username}" /> <propriété name = "mot de passe" value = "$ {mot de passe}" /> <! - Initialisez la taille de la connexion -> <propriété name = "InitialSize" Value = "$ {InitialSize}"> </ Property <propriété name = "maxidle" value = "$ {maxidle}"> </ propriété> <! - Pool de connexion inactif minimum -> <propriété name = "minidle" value = "$ {minidle}"> </ propriété> <! - Obtenez le temps d'attente de connexion maximum -> <propriété Name = "maxwait" value = "$ {maxwait}"> </ Property Mybatis, pas de fichier de mappage de configuration MyBatis -> <bean id = "sqlSessionFactory"> <propriété name = "dataSource" ref = "dataSource" /> <! - Scanning automatique de mapping.xml fichiers -> <propriété name = "makelocations" value = "plyfr> </ beebr Nom du package Là où l'interface DAO est située, Spring trouvera automatiquement la classe sous elle -> <anEn> <propriété name = "BASEPACKAGE" Value = "com.cjt.dao" /> <propriété Name = "SqlSessionFactoryBeanName" Value = "SqlSessionFactory"> </ Property id = "TransactionManager"> <propriété name = "dataSource" ref = "dataSource" /> </bans> </bans>Tous les fichiers ci-dessus sont créés dans le dossier Ressources
5. Générer automatiquement le code de base de données
1) Créez une nouvelle table
Tout d'abord, nous créons une nouvelle table User_T, et les champs sont les suivants:
2) Package de téléchargement
Les packages de téléchargement incluent: Mybatis-3.2.6.jar , MyBatis-Generator-core-1.3.3
3) Exécuter - générer automatiquement du code
Créer un nouveau dossier, y compris les fichiers suivants
GeneratorConfig.xml est le fichier XML qui génère le code, et le contenu est le suivant:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype GeneratorConfiguration public "- // Mybatis.org//dtd Mybatis Generator Configuration 1.0 // en" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <GeneratorConcure> <! - Database Driver -> <classpathentry location = "mysql-connector-java-5.1.39-bin.jar" /> <context id = "db2tables" targetRuntime = "mybatis3"> <commentagenerator> <propriété name = "supressdate" value = "true" /> <! name = "SupressallComments" value = "true" /> </ commentgenerator> <! - URL de liaison de base de données, nom d'utilisateur, mot de passe -> <jdbcconnection driverclass = "com.mysql.jdbc.driver" ConnectionUrl = "jdbc: mysql: // localhost: 3306 / test" userrid = "root" mot de passe = ""> </ jdbcconnection> <JavatyPeresolver> <propriété name = "ForceBigDecimals" value = "false" /> </ javatypereSolver> <! - Générez le nom du package et l'emplacement du modèle -> <javamodelgenerator targetpackage = "com.cjt.domain" TargetProject = "Src"> <propriété nom = "INABLABPACKAGS" name = "TrimStrings" value = "true" /> </ javamodelgenerator> <! - Générez le nom et l'emplacement du package du fichier de mappage -> <SqlMapGenerator TargetPackage = "com.cjt.mapping" TargetProject = "src"> <propriété name = "LisiableBpackages" Package = "True" /> </ SQLLMMAPGERATOR> <! de Dao -> <javaclientGenerator type = "xmlmapper" ciblePackage = "com.cjt.dao" targetproject = "src"> <propriété name = "activeubpackages" value = "true" /> </ javaclientgenerator> <! - Le tableau à générer est le nom de la table dans le nom de Database ou le nom de la vision DomainObjectn est le nom de la table dans le nom de Database ou le DomainoS de la Database ou le DomainoS de la Database ou le nom de Domaino <table tableName = "user_t" domainObjectName = "user" iactiveCountByExample = "false" activerupdateByExample = "false" ENTIVEDELETEBYEXample = "false" ActiveDelectByExample = "false" SelectByExampeReryId = "false"> </ Table
Ensuite, nous utilisons la commande CMD pour saisir le dossier nouvellement créé et entrez:
Java -Jar Mybatis-Generator-core-1.3.3.jar -configfile GeneratorConfig.xml -overwrite
Enfin, le code est généré.
Remarque: Le code est automatiquement généré ici via la ligne de commande, et les lecteurs peuvent également le générer via le plug-in Eclipse.
6. Code Démarrer
Créez un nouveau package, comme suit: (Les flèches sont toutes des codes générés automatiquement ci-dessus)
Iuserservice.java
interface publique iUserService {public utilisateur getUserById (int id); }UserServiceImpl.java
@ServicePublic Class UserserServiceIMPL implémente iUserService {@Autowired privé iUserdao Userdao; public UserserServiceImpl () {System.out.println ("userServiceImpl"); } utilisateur public getUserById (int id) {return userdao.selectbyprimaryKey (id); }}UserController.java
@ Contrôleur @ requestmapping ("/ user") public class userController {public userController () {System.out.println ("userController"); } @Resource Private iUserService UserService; @RequestMapping ("/ showUser") public String toindex (httpServLetRequest request, modèle modèle) {System.out.println ("userController showUser"); int id = Integer.ParseInt (request.getParameter ("id")); User user = userService.getUserById (ID); Model.AddAttribute ("utilisateur", utilisateur); retourner "showUser"; }}Créez un nouveau répertoire JSP sous Web-Inf et créez un nouveau fichier showUser.jsp ci-dessous
showUser.jsp
<% @ page Language = "java" contentType = "Text / html; charset = utf-8" pageencoding = "utf-8" import = "java.util. *, com.cjt.domain. *"%> <! doctype html public "- // w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" contenu-type "contenu =" Text / html; charset = utf-8 "> </ title> Ici </ title> </ head> <body> $ {user.username} </ body> </html>Enfin, joindre web.xml
<? xml version = "1.0" Encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" XSI: ScheMalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version = "3.0"> Application Web </ Display-Name> <! - Fichiers de configuration de Spring et MyBatis -> <IXTATH-PARAM> <AMAM-NAME> ContextConfiglocation </ Param-Name> <Amam-Value> ClassPath: Spring-Mybatis.xml </ Param-Value> </ Context-Param> <! - Filter de l'encodage> <filter> <fileter-name> ENCODINGFILTER </ Filter-Name> <Filter> <Filter-Class> org.springframework.web.filter.characterencodingfilter </filter-class> <async-support> true </sync-supported> <Init-Param> <Am param-name> Encoding </ param-name> <paramter> utf-8 </ param-value> <Stracon-mappant> <filter-name> EncodingFilter </ Filter-Name> <Url-Pattern> / * </ url-Pattern> </ Filter-Mapping> <! - Spring auditeur -> <écouteur-class> org.springframework.web.context.ContextLoDerDériner </ounerer-Class> </ auteur> <! - <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <!-- Spring MVC servlet --> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <Innit-Param> <Am param-name> ContextConfiglocation </ Param-Name> <AmArd-Value> ClassPath: Spring-Mvc.xml </Aram-Value> </Init-Param> <Choad-on-Startup> 1 </ Load-on-startup> <sync-Supported> True </sync-Supported> </Servlet> <Servlet-Mapt> <frlet-Mapping> <Serplet-name> Springmvc </vrlett-name> <! - Ici, vous pouvez configurer * .do, correspondant à l'habitude du suffixe de Struts -> <url-sattern> / bienvenue> / url-potentiel> </ville-mapping> </vendule-list> </ket> / web-app>
Ci-dessus, la génération de code est terminée.
Les projets peuvent être téléchargés: https://github.com/cjt321/mavenspirngmvcmybatis
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.