Cet article présente la méthode de Maven pour construire son premier backend Java. Il est partagé avec vous. Les détails sont les suivants:
1. Connaissance du retour
J'ai expliqué en détail dans le dernier numéro de la façon d'utiliser Maven pour construire votre premier projet. Le lien précédent est; Aujourd'hui, j'utiliserai les cadres SpringMVC et MyBatis pour construire votre propre backend Java.
2. Préparations nécessaires
①Intellij idée, l'environnement maven est bien construit
②familiar avec mybatis, springmvc et autres cadres
③Creation de la base de données MySQL
3. Disposition d'architecture globale
4. Étapes spécifiques
①Configurez le package JAR à utiliser dans pom.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! - Licencié à l'Apache Software Foundation (ASF) dans un ou plusieurs accords de licence de contributeur. Voir le fichier d'avis distribué avec ces travaux pour plus d'informations sur la propriété du droit d'auteur. L'ASF vous licencie ce fichier sous la licence Apache, version 2.0 (la "licence"); Vous ne pouvez pas utiliser ce fichier sauf conforme à la licence. Vous pouvez obtenir une copie de la licence à http://www.apache.org/licenses/license-2.0, sauf si la loi applicable ou acceptée par écrit, logiciel distribué en vertu de la licence est distribué sur une base "en tant que", sans garantie ou conditions d'aucune sorte, expresse ou impliquée. Voir la licence pour la langue spécifique régissant les autorisations et les limitations sous la licence .--> <! - $ id: pom.xml 642118 2008-03-28 08: 04: 16Z Reinhard $ -> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <ModelVersion> 4.0.0 </ ModelVersion> <Packaging> War </ Packaging> <Name> Yakei </name> <proupId> com.yakei </proncId> <ArtifActid> Yakei </ Artifactid> <Dersion> 1.0-Snapshot </DERNÉRES> <Detences> <Dedédency> <! <GroupId> JUnit </rom grouped> <ArtefactId> JUnit </ artifactive> <version> 4.11 </ version> <ccope> Test </ccope> </ Dependency> <! - Complete Project Dependances -> <! - 1. Log Java Logs inclut: slf4j, log4j, journal de journal, Logage commun SLF4J: est la spécification / l'interface Implémentation du journal: log4j, logback, Common-Logging Use: Slf4j + Logback -> <Dendency> <proupId> org.slf4j </proupId> <Artifactid> SLF4J-API </RIFACTID> </Dependency> <Dedency> <GroupId> Ch.qos.logback </prôned> <ArtifActid> Logback-core </ artifactive> <in version> 1.1.1 </preffenc <version> 1.1.1 </ version> </dependency> <! - 1. Dépendances liées à la base de données -> <dependency> <groupId> MySQL </rom grouped> <ArtifActid> MySQL-Connector-Java </Retifactid> <Dersion> 5.1.36 </ Version> <POPE> Runtime </cope> </ Dependency> <Dedency> <ProupID> C3P0 </proupId> <ArtifActid> C3P0 </ ArtIDACTID> C3PID> <version> 0.9.1.1 </ version> </ dépendance> <! - 2.Dao Framework: Mybatis Dependency -> <Dependency> <ProupId> org.mybatis </pr grouped> <ArtefactId> Mybatis </ artifactid> <version> 3.3.0 </-version> </Dedency> <! <GroupId> org.mybatis </rom grouped> <Artifactid> Mybatis-Spring </ Artifactid> <version> 1.2.3 </ version> </Dependency> <! - 3.Servlet Dependance lié à la Web -> </peedency> <proupId> Taglibs </proupId> </ Version> </ptecity> <version> <GroupId> JSTL </rom grouped> <ArtifactId> JSTL </ artifactid> <version> 1.2 </DERNIERSE> </DENDENCENCE> <Dendency> <ProupId> com.fasterxml.jackson.core </proupId> <Ertifactid> Jackson-Databind </distifactid> <version> 2.5.4 </DERVIERSE> </Dedency> <GroupId> javax.servlet </prôdId> <Artifactid> javax.servlet-api </retifactid> <version> 3.1.0 </ version> </ Dependency> <! - 4: Spring Dependance -> <! - 1) Spring Core Dependances -> <Dedency> <proupId> org.springFramework </proupId> <ArtifActid> Spring-Core </ ArtIDACD> <version> 4.1.7.release </ version> </ dépendance> <dependency> <proupId> org.springframework </proncId> <Artifactid> Spring-Beans </letifactid> <De version> 4.1.7.release </-version> </ Dependency> <Dedency> <ProupId> org.springframework </prouvend> <artifactive> Spring-Contell <version> 4.1.7.release </ version> </ dépendance> <! - 2) Spring Dao Layer Dependance -> <Dependency> <GroupId> org.springFramework </proncId> <ArtefactId> Spring-JDBC </letefactId> <version> 4.1.7.release </preendincy> <pedency> <ArtefactId> Spring-Tx </ Artifactid> <Dersoné> 4.1.7.release </DERNIERSE> </ Dependency> <! - 3) De dépendances liées à Springweb -> <Dedency> <ProupID> org.springFramework </rom grouped> <Artifactid> Spring-web </ Artifactid> <version> 4.1.7.release </ version> <GroupId> org.springframework </proncId> <Artifactid> printemps-webmvc </ artifactid> <version> 4.1.7.release </ version> </dependency> <! - 4) Spring Test Related Depending <version> 4.1.7.release </ version> </ dépendance> </Dependces> </randing>
Il couvre une série de packages JAR tels que Spring, Mybatis, etc. Ce processus est similaire à Android ajoutant des dépendances tierces à Build.gradle, et les principes sont cohérents.
2. Créez deux répertoires dans le répertoire des ressources: Mappeur, printemps
Mappeur: Le mappeur est un mappage du cadre MyBatis, et sa fonction est d'utiliser le fichier de mappage dans la couche DAO; Ici, j'ai créé une carte user.xml:
La partie rouge doit être prêtée attention. Le haut est le chemin pour cartographier la couche DAO, et le second est le type de l'objet de retour. Je publierai le code ici:
<! Doctype Mapper public "- // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace =" com.dajiu.dao.userdao "> <! Autrement dit, écrivez nos instructions SQL pour les méthodes dans l'interface DAO -> <select id = "getall" resultType = "com.dajiu.bean.user"> SELECT * From User </sect> <select id = "getlogin" resultType = "com.dajiu.bean.user"> SELECT * dans le nom de l'utilisateur = # {nom} et mot de passe = # {}Spring: Chargez principalement le fichier de configuration de Spring
1.Spring-dao.xml
Code postal:
<? 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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <! - Configuration Integration Mybatis Process 1. Configurer les paramètres de database-lié -> <contexte: Property-place Holder location = "classpath: jdbc.properties" /> <! - 2. Pool de connexion de la base de données -> <bean id = "dataSource"> <! - Configurer les propriétés du pool de connexion -> <propriété name = "driverclass" value = "$ {driver}" /> <! - Propriétés de base URL, utilisateur, mot de passe -> <propriété name = "jdbcurl" value = "$ {url}" /> <propriété name = "user" value = "value" $ {user) name = "mot de passe" value = "$ {mot de passe}" /> <! - C3p0 Propriété privée -> <propriété name = "maxpoolSize" value = "30" /> <propriété name = "MinpoolSize" value = "10" /> <! - Not automatiquement Coupté après la fermeture de la connexion -> <Propriété Name = "AutoCMitOnClose" Value = "Faux" /> <! name = "CheckoutTimeout" value = "10000" /> <! - Nombre de réessayer lorsque la connexion échoue -> <propriété name = "acquireetTatTempts" value = "2" /> </-bee -> <! - Inject Database Connection Pool -> <propriété name = "dataSource" ref = "dataSource" /> <! - Configuration du fichier de configuration globale de MyBatis: Mybatis-Config.xml -> <propriété name = "configLocation" value = "ClassPath: mybatis-config.xml" /> <! - scanner le package entité, package entité, utilisation de noms multiple; séparé -> <propriété name = "Typealiasespackage" value = "com.dajiu.bean" /> <! - Scan le fichier de configuration SQL: le fichier xml requis par Mapper -> <propriété name = "MapperLocations" value = "ClassPath: Mapper / *. Container -> <an Bean> <! - Inject SqlSessionFactory -> <propriété name = "SqlSessionFactoryBeAnName" Value = "SqlSessionFactory" /> <! - Donnez l'interface DAO à analyser -> <propriété name = "BASEPACKAGE" Value = "com.dajiu.dao" /> </ean> </Ebackage "Endroits où faire attention à:
Connectez-vous à la base de données:
Configurez la classe globale de MyBatis-Config et Bean, tous les fichiers sous Mappe
Configurer DAO
2.Spring-Service.xml
Code postal:
<? 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: context = "http://www.springframework.org/schema/context" xmlns: tx = "http://www.springframework.org/schema/tx" xsi: schemalocation = "http://www.springfrrameworkwork.org/schema/bans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd "> <! Manager -> <bean id = "TransactionManager"> <! - Inject Database Connection Pool -> <propriété name = "DataSource" ref = "DataSource" /> </Ean> <Bean Id = "Date"> </Ean> <! - Configurer les transactions déclaratives basées sur l'annotation pour gérer le comportement de transaction par défaut-> </ Tx: annotation-transaction-managère = "Transactionmanageur"
Faites attention à la zone locale:
Configurer le service
3.Spring-web.xml
Code postal:
<? 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: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalation = "http://www.springframework.org/schea/bans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <! - Configuration mvc -> <! - 1, permettre le mode d'annotation Springmvc a. Enregistrez automatiquement defaultannotationHandlerMapping, AnnotationMethodHandlerAdapter b. Par défaut, une série de fonctions est fournie: liaison des données, format de nombres et dates @ numberformat, @ DateTimeFormat C: XML, la prise en charge de la lecture et de l'écriture par défaut de JSON -> <MVC: Annotation-Drive /> <! - 2. Configuration du servlet par défaut des ressources statiques-> <! - 1). Ajout d'un traitement statique des ressources: JS, GIF, PNG 2). Autoriser "/" faire du mappage global-> <mvc: par défaut-service-handler /> <! - 3: Configurer jsp pour afficher ViewResolver -> <ean> <propriété name = "ViewClass" value = "org.springframework.web.servlet.view.jstlview" /> <propriété name = "préfixe" value = "/ web-inff / View /" Value = ". JSP" /> </ bean> <! - 4: Scan the Web Beans -> <Context: Component-Scan Base-Package = "com.dajiu.controller" /> <mvc: Resources Mapping: Resources Mapping = "/ ** / *. <MVC: Ressources Mapping = "/ ** / *. CSS" Location = "/" /> <Mvc: Resources Mapping = "/ ** / *. Png" Location = "/" /> <Mvc: Resources Mapping = "/ ** / *. GIF" Location = "/" /> </ Beans> Resources
Faites attention à la zone locale:
Configurer le contrôleur
5. Implémentation logique (prendre l'utilisateur comme exemple)
① premier définir la classe d'utilisateurs dans le haricot
Package com.dajiu.bean; / ** * créé par Zhangxing le 2017/4/7. * / public class utilisateur {private int id; nom de chaîne privé; mot de passe de chaîne privé; public int getID () {return id; } public void setid (int id) {this.id = id; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public String getPassword () {return mot de passe; } public void setPassword (String Motword) {this.password = mot de passe; }}② Définissez ensuite l'interface UserDao dans DAO
Package com.dajiu.dao; Import com.dajiu.bean.user; import org.apache.ibatis.annotations.param; import org.springframework.sterreotype.repository; import java.util.list; / ** * créé par zhangxing le 2017/4/7. * / @ RepositoryPublic Interface userDao {list <ser utilisateur> getall (); Utilisateur getLogin (@param ("nom") nom de chaîne, @param ("mot de passe") mot de passe de chaîne);}Mappage de la couche DAO dans user.xml
③NET pour déclarer l'interface dans le service
package com.dajiu.service; import com.dajiu.bean.user; import java.util.list; / ** * créé par Zhangxing le 2017/4/7. * / Interface publique UserService {list <utilisateur> getall (); Utilisateur getLogin (nom de chaîne, mot de passe de chaîne);}④ Implémentez ensuite la logique d'interface dans Service.impl
Package com.dajiu.service.impl; import com.dajiu.bean.user; import com.dajiu.dao.userdao; import com.dajiu.service.userservice; import org.springframework.beans.factory.annotation.autowired; import org.springframeworkworkworkworkworkworkworkworkworkwork java.util.list; / ** * créé par Zhangxing le 2017/4/7. * / @ Service ("userService") classe publique UserServiceImpl implémente userService {@autowired userDao UserDao; public list <serser> getall () {return userdao.getall (); } utilisateur public getLogin (nom de chaîne, mot de passe de chaîne) {return userdao.getLogin (nom, mot de passe); }}@Autowired ici équivaut à créer une nouvelle instance
⑤Implement Logique d'appel de fond réel dans le contrôleur
package com.dajiu.Controller; import com.dajiu.bean.user; import com.dajiu.service.userservice; import org.springframework.beans.factory.annotation.autowired; import org.springframework.sterreoty org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.responsebody; import java.util.hashmap; import java.util.list; import java.util.map; / ** * créé par zhangxing le 2017/4/7. * / @ Contrôleur @ requestmapping ("/ blog") public class userController {@Autowired userService userService; @RequestMapping ("/ GetUser") @ResponseBody Public Map <String, Object> GetUser () {map map = new hashmap (); List <ser user> list = userService.getall (); map.put ("utilisateur", liste); map.put ("statut", 1); map.put ("Success", true); carte de retour; } @RequestMapping ("getLogin") @ResponseBody Public Map <String, objet> getLogin (nom de chaîne, mot de passe de chaîne) {map map = new hashmap (); User user = userService.getLogin (nom, mot de passe); map.put ("utilisateur", utilisateur); map.put ("Islogin", true); map.put ("statut", 1); carte de retour; }}Ici @RequestMapping ("") représente le chemin de mappage accessible, @ResponseBody représente le résultat de la demande imprimé au format de données JSON et @Controller représente que tant que le chemin de mappage racine ci-dessus est accessible, le contrôleur sera appelé directement;
Aidez-vous maintenant à comprendre vos idées: Première demande UserController ---> UserService ----> UserServiceIMPL ----> userdao ---> user.xml (mappeur) ----> bean (user)
6. Configurer le serveur Tomcat
Cliquez sur le bouton Triangle vert dans le coin supérieur droit et cliquez sur Configuration de modification
② cliquez le signe + et sélectionnez Tomcat
③Sélectionnez local
FILLER dans la configuration pertinente
⑤Click Déploiement, cliquez sur le signe + et sélectionnez Artefact
Puis choisissez le premier élément et continuez à entrer
De cette façon, l'ensemble de votre projet sera terminé et la prochaine étape consiste à visiter
D'accord, aujourd'hui, l'explication de SpringMVC et Mybatis Building Java Backend est terminée.
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.