Este artículo presenta el método de Maven para construir su primer backend de Java. Se comparte contigo. Los detalles son los siguientes:
1. Conocimiento de regreso
He explicado en detalle en el último número de cómo usar Maven para construir su primer proyecto. El enlace anterior es; Hoy usaré los marcos SpringMVC y MyBatis para construir su propio backend de Java.
2. Preparaciones necesarias
①Tintellij Idea, Maven Environment está bien construido
② Familiar con MyBatis, SpringMVC y otros marcos
③ Creación de la base de datos MySQL
3. Diseño general de arquitectura
4. Pasos específicos
① Configure el paquete jar para usar en pom.xml
<? Xml versión = "1.0" coding = "utf-8"?> <!-con licencia a Apache Software Foundation (ASF) bajo uno o más acuerdos de licencia de contribuyentes. Consulte el archivo de notificación distribuido con este trabajo para obtener información adicional sobre la propiedad de los derechos de autor. El ASF le otorga este archivo bajo la licencia Apache, versión 2.0 (la "licencia"); No puede usar este archivo, excepto de conformidad con la licencia. Puede obtener una copia de la licencia en http://www.apache.org/licenses/license-2.0, a menos que sea requerido por la ley aplicable o acordado por escrito, el software distribuido bajo la licencia se distribuye "como es", sin garantías o condiciones de ningún tipo, ya sea expresa o implícita. Vea la licencia para los permisos y limitaciones de rectores de idioma específico bajo la licencia .--> <!-$ 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> <compainete> war </packaging> <name> yakei </name> <proupid> com.yakei </groupid> <artactActid> yakei </artifactid> <versión> 1.0-snapshot </version> <pendencies> <Spendency> <!-3.0 Junit se usa para evaluar el programación Junit4- <MoupRid> Junit </proupid> <artifactid> Junit </artifactid> <versión> 4.11 </verse> <cope> test </pope> </pepertency> <!-Dependencias del proyecto completa-> <!-1. Los registros de Java de registro incluyen: SLF4J, LOG4J, LOGBACK, SLF4J de registro común: es la implementación de la especificación/interfaz del registro: log4j, logback, uso de registro común: slf4j+logback-> <pendency> <MoupRoMID> org.slf4j </groupid> <artifactID> slf4j-api </artifactid> <lother> <verly> 1.7.12.12.12.12.12.12.12.12.12.12.12.12. </pendency> <pendency> <grupid> ch.qos.logback </proupid> <artifactid> logback-core </arfactid> <verserse> 1.1.1 </versión> </pendency> <!-Implementar la interfaz slf4j e integrar-> <pendency> <proupid> ch.qos.logback </groupid> <artifactid> logback-clsic </arthshid </Artifactid> <Versión> 1.1.1 </versión> </pendency> <!-1. Dependencias relacionadas con la base de datos-> <Spendency> <MoupRoD> MySQL </GroupId> <AtifactId> MySQL-Connector-Java </arfactid> <PROPELESIÓN> 5.1.36 </Version> <Cope> Runtime </cope> </dependencia> <pendency> <ProupId> C3p0 </proupid> <artifactid> c3p0 </ArtIntence> <Versión> 0.9.1.1 </versión> </pendency> <!-2.Dao Framework: MyBatis Dependency-> <Spendency> <MoupRoD> org.mybatis </proupid> <AtifactId> myBatis </artifactid> <versión> 3.3.0 </versión> </dependencia> <! --- mybatis implements spring dependation-<spendency> <spendency> <pendency> <pendency> <MoupRid> org.mybatis </groupid> <artifactid> mybatis-spring </artifactid> <verserse> 1.2.3 </versión> </pendency> <!-3.servlet dependencias web- subcelations-> <pendency> </groupid> taglibs </groupid> <arfactid> Standard </artifactid> <versions> 1.1.2 </Versión </Versión de Taglibs </groupid> <artifactId> Standard </artifactid> <versersion> 1.1.2 </Versión </Versión </groupid> <tifiCte> Standard </artifactid> <versersion> 1.1.1.2 </Versión </Versión de Taglibs </groupid> <artifactId> Standard </artifactid> <versersever> <MoupRid> jstl </proupid> <artifactid> jstl </arfactid> <verserse> 1.2 </versions> </pendency> <pendency> <MoupRoMID> com.fasterxml.jackson.core </groupId> <artifactid> jackson-dataabind </artifactID> <PROPESIDAD> 2.5.4 </versión> </spendency> <pendency> <MoupRid> javax.servlet </groupid> <artifactid> javax.servlet-api </artifactid> <versión> 3.1.0 </versión> </pendency> <!-4: dependencias de primavera-> <!-1) Spring Core Dependencies-> <epardency> <Proupid> Org.SpringFramework </proupid> <Artifactid> Spring Core </ArtIntency> <ProupID> Org.SpringFramework </proupid> <Artifactid> <versión> 4.1.7.Release </ververy> </pendency> <epardency> <grupid> org.springframework </groupid> <artifactid> spring-beans </artifactid> <versión> 4.1.7.release </versión> </dependency> <ependency> <grupid> org.springframework </groupid> <tifiCactiCactId <ArtifactId <RIECTEXT> SpringEdx <Versión> 4.1.7.Release </Version> </pendency> <!-2) Dependencias de la capa DAO de Spring-> <Spendency> <MoupRoMID> org.springframework </groupid> <artifactid> spring-jdbc </artifactid> <version> 4.1.7.rupeRelease </versión> </dependencia> <pendency> o groupid> <artifactId>spring-tx</artifactId> <version>4.1.7.RELEASE</version> </dependency> <!--3)springweb-related dependencies--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.7.RELEASE</version> </dependency> <dependency> <MoupRid> org.springframework </groupid> <artifactID> spring-webmvc </artifactid> <verserse> 4.1.7.release </ververy> </pendency> <!-4) dependencias de primavera relacionadas con las pruebas-> <fependency> <grupiD> org.springframework </sproupid> <artifactid> spring-test </artifact> <versión> 4.1.7.Release </versewer> </pepertency> </pendencs> </proyecto>
Cubre una serie de paquetes JAR como Spring, MyBatis, etc. Este proceso es similar a que Android agregue dependencias de terceros a la construcción.
2. Cree dos directorios en el directorio de recursos: Mapper, Spring
MAPPER: MAPPER es una asignación del marco MyBatis, y su función es usar el archivo de mapeo en la capa DAO; Aquí creé un mapa user.xml:
Se debe prestar atención a la parte roja. El superior es la ruta para mapear la capa DAO, y la segunda es el tipo del objeto de retorno. Publicaré el código aquí:
<! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper sameSpace =" com.daJiu.dao.userdao " Escrito, es decir, escriba nuestras declaraciones SQL para métodos en la interfaz DAO-> <select id = "getall" resultType = "com.dajiu.bean.user"> select * de user </select> <select id = "getLogin" dentType = "com.dajiu.bean.user"> Select * del usuario donde name = #{name} y contraseña y contraseña = #{Password} </select> </s mapper>Spring: cargue principalmente el archivo de configuración de Spring
1.spring-dao.xml
Código de postal:
<? xml versión = "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/scoans/spring-ste http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!-Integración de configuración myBatis Proceso 1. ubicación = "classpath: jdbc.properties"/> <!-2. Database connection pool--> <bean id="dataSource"> <!--Configure connection pool properties--> <property name="driverClass" value="${driver}" /> <!-- Basic properties url, user, password --> <property name="jdbcUrl" value="${url}" /> <property name="user" value="${username}" /> <property name="password" value = "$ {contraseña}"/> <!-C3p0 Propiedad privada-> <propiedad name = "maxpoolSize" value = "30"/> <propiedad name = "minpoolSize" value = "10"/> <!-no automáticamente después de cerrar la conexión-> <name de propiedad = "autocommitinClose" value = "falso"/> <!-Get TimeOut-> <Propiedad nameut " value = "10000"/> <!-Número de reintento Cuando la conexión falla-> <Property name = "adquireretryAttempts" value = "2"/> </bean> <!-La convención es mayor que la configuración-> <!-3.Configuration of sqlSessionFactory Object-> <bean id = "sqlSessionFactory"> <!-establecido es la configuración que integración mybatise y spring- Connection Pool-> <Property Name = "DataSource" ref = "DataSource"/> <!-Configuración de MyBatis Global Configuration File: mybatis-config.xml-> <Property name = "configlocation" value = "classpath: mybatis-config.xml"/> <!-escanear el paquete entity alias, use múltiples nombres; separado-> <propiedad name = "typealiaspackage" value = "com.dajiu.bean"/> <!-Escanee el archivo de configuración de SQL: el archivo XML requerido por mapper-> <propiedad name = "mapperLocations" value = "classpath: mapper/*. XML"/> </bean> <!-4: Configure el paquete de interfaces de escaneo Dao, el paquete Dao Interface, DinamicTy Dynamicic The Dao Spret y Dao Spret y Dao SPRIM Container-> <Bean> <!-Inject sqlSessionFactory-> <Property name = "SQLSessionFactoryName" value = "SqlSessionFactory"/> <!-Dé la interfaz DAO para escanear-> <Property Name = "BasePackage" Value = "Com.Dajiuu.dao"/> </bean> </bean>Lugares para prestar atención a:
Conectarse a la base de datos:
Configurar la clase global de mybatis-config y bean, todos los archivos en mapeador
Configurar DAO
2.spring-service.xml
Código de postal:
<? xml versión = "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.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springfframework.org/context/spring-contexsdd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd "> <!-escanear todos los tipos de anotaciones en el paquete de servicio-> <contexto: componente-scan-beackage =" com.daJiu.ser. manager--> <bean id="transactionManager"> <!--Inject database connection pool--> <property name="dataSource" ref="dataSource"/> </bean> <bean id="date"></bean> <!--Configure annotation-based declarative transactions to manage transaction behavior by default-> <tx:annotation-driven transaction-manager="transactionManager"/></beans>
Presta atención al área local:
Configurar el servicio
3.spring-web.xml
Código de postal:
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" "" "" xmlns: contexte = "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.springfframework.org/context/spring-contexsdd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-Configuración Spring MVC-> <!-1, enable Springmvc Annotation Mode Mode a. Registre automáticamente el defaultannotationHandlermapping, AnnotationMethodHandlerAdapter b. De manera predeterminada, se proporcionan una serie de funciones: enlace de datos, formato de números y fechas@numberFormat,@dateTimeFormat C: XML, soporte de lectura y escritura predeterminado de JSON-> <mvc: anotación-conducida/> <!-2. Configuración de servlet predeterminada de recursos estáticos-> <!-1). Procesamiento de recursos estáticos agregados: JS, GIF, PNG 2). Permitir "/" para hacer asignación general-> <mvc: default-servlet-handler/> <!-3: Configurar JSP para mostrar ViewResolver-> <Bean> <Property Name = "ViewClass" Value = "Org.springframework.web.servlet.view.jstlview"/> <name de propiedad = "PREFIX" Value = "/Web-inf/View/" View/" value=".jsp"/> </bean> <!--4:Scan the web-related beans--> <context:component-scan base-package="com.dajiu.controller"/> <mvc:resources mapping="/**/*.html" location="/"/> <mvc:resources mapping="/**/*.js" location="/"/> <mvc: recursos mapping = "/**/*. css" ubicación = "/"/> <mvc: recursos mapping = "/**/*. png" ubicación = "/"/> <mvc: mapping de recursos = "/**/*. gif" ubicación = "/"/> </ behapes>
Presta atención al área local:
Configurar controlador
5. Implementación lógica (tomando el usuario como ejemplo)
①First Definir la clase de usuario en el bean
paquete com.dajiu.bean;/*** creado por Zhangxing en 2017/4/7. */Public Class User {private int id; nombre de cadena privada; contraseña de cadena privada; public int getId () {return id; } public void setid (int id) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getPassword () {return Password; } public void setPassword (String Password) {this.password = contraseña; }}② Luego defina la interfaz userdao en DAO
paquete com.dajiu.dao; import com.dajiu.bean.user; import org.apache.ibatis.annotations.param; import org.springframework.stereotype.repository; import java.util.list;/*** creado por Zhangxing en 2017/4/7. */@RepositoryPublic Interface UserDao {list <serem> getAll (); Nombre de cadena GetLogin (@param ("nombre"), @param ("contraseña") String Password);}Mapeo de la capa DAO en user.xml
③Next para declarar la interfaz en el servicio
paquete com.dajiu.service; import com.dajiu.bean.user; import java.util.list;/*** creado por Zhangxing el 2017/4/7. */Public Interface UserService {list <serem> getAll (); Usuario getLogin (nombre de cadena, contraseña de cadena);}④ Luego implementa la lógica de la interfaz en el servicio.ImPL
paquete com.dajiu.service.impl; import com.dajiu.bean.user; import com.dajiu.dao.userdao; import java.util.list;/*** Creado por Zhangxing en 2017/4/7. */ @Service ("UserService") Public Class UserServiceImpl implementa UserService {@aUtowired userdao userDao; Lista pública <Ser User> getAll () {return userDao.getall (); } Public User getLogin (nombre de cadena, contraseña de cadena) {return userDao.getLogin (nombre, contraseña); }}@AUtowired aquí es equivalente a crear una nueva instancia
⑤ Implemento Lógica de llamadas de fondo real en el controlador
paquete com.dajiu.controller; import com.dajiu.bean.user; import com.dajiu.service.userService; import org.springframework.beans.factory.annotation.aUtowired; import org.springfframework.stereotype.controller; importar; importación; 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;/*** creado por zhangxing en 2017/4/7. */@Controlador@requestmapping ("/blog") Clase pública UserController {@aUtoWired UserService UserService; @RequestMapping ("/getUser") @ResponseBody Map Public Map <String, Object> getUser () {map map = new HashMap (); List <Serem> List = Userservice.getall (); map.put ("usuario", lista); map.put ("estado", 1); map.put ("éxito", verdadero); mapa de retorno; } @RequestMapping ("getLogin") @ResponseBody Map público <string, object> getLogin (name de cadena, contraseña de cadena) {map map = new HashMap (); Usuario usuario = Userservice.getLogin (nombre, contraseña); map.put ("usuario", usuario); map.put ("islogin", verdadero); map.put ("estado", 1); mapa de retorno; }}Aquí @RequestMapping ("") representa la ruta de mapeo accedida, @ResponseBody representa el resultado de la solicitud impreso en formato de datos JSON, y @Controller representa que siempre que se acceda a la ruta de mapeo de raíz anterior, el controlador se llamará directamente;
Ahora ayudemos a comprender sus ideas: Primera solicitud UserController ---> UserService ----> UserServiceImpl ------> Userdao ---> user.xml (mapeador) ----> bean (usuario)
6. Configure el servidor Tomcat
① Haga clic en el botón Triángulo verde en la esquina superior derecha y haga clic en Editar configuración
② Haga clic en el signo + y seleccione Tomcat
③ Seleccionar local
④Fill en la configuración relevante
⑤ Haga clic en la implementación, haga clic en el signo + y seleccione Artifact
Luego elija el primer elemento y siga entrando
De esta manera, todo su proyecto se completará y el siguiente paso es visitar
De acuerdo, hoy la explicación de SpringMVC y MyBatis Building Java Backend ha terminado.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.