ilustrar
Este proyecto adopta una estructura Maven, que demuestra principalmente el controlador Spring MVC + MyBatis, controlador para obtener datos y retorno de datos en formato JSON.
Estructura de proyectos
Dependencias e instrucciones de paquetes
Archivo POM:
<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.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. http://maven.apache.org/maven-v4_0_0.xsd"><modelversion>4.0.0</modelversion><groupid>com.hbb0b0.maven01</gro upid> <artifactid> maven01 </artifactid> <compackaging> war </packaging> <versión> 0.0.1-snapshot </versión> <name> maven01 Maven WebApp </name> <sl> http://maven.apache.org </sl> <properties> <!-Número de versión de mybatis-> <mybatis.version> 3.2.6 </mybatis.version> <!-Paquete de administración de archivos log4j log versión-> <slf4j.version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </propiies> <pendencies> <epardency> <grupo> junit </proupid> <artifactid> junit </artifactid> <Vers ion> 3.8.1 </ververse> <cope> test </cope> </pepertency> <epardency> <uproupid> org.springframework </uproupid> <artifactid> spring-webmvc </artifactid> <versión> 4.1.2.release </versión> </dependencia> <! https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl-> <pendency> <grupoD> org.codehaus.jackson </proupid> <artifactid> jackson-sapper-asl </artifactid> <versión> 1.9.2 </versión> </pendency> <! https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl-> <pendency> <MoupRid> org.codehaus.jackson </proupid> <artifactid> jackson-core-asl </artifactid> <lipsion> 1.9.13 </versión> </spendency> <! https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind-> <pendency> <MoupRupid> com.fasterxml.jackson.core </groupid> <artifactid> jackson-dataBind </artifiCiD> <Versión> -> <pendency> <grupid> org.mybatis </groupid> <artifactid> mybatis-spring </artifactid> <versión> 1.3.0 </versión> </pendency> <!-Importar un enlace de base de datos mysql jar Paquete-> <Spendency> <MoupRId> MySQL </GroupId> <StarifactId> MySQL-Connector-Java </arfactid> <versión> 5.1.30 </versewers> </pendency> <!-MyBatis orm Framework-> <Spendency> <MoupRid> org.mybatis </groupid> <artifactid> mybatis </arfactid> <verserse> 3.4.1 </verversion> </pendency> <epardency> <proupid> org.springframework </proupid> <artifactid> spring-tx </artifactid> <veression E </versewer> </pendency> <pendency> <proupid> org.springframework </groupid> <artifactid> spring-jdbc </artifactid> <versión> 4.1.2.release </versión> </pendency> </pendencs> <17 build> <dinalName> maven01 </ finalName> </build> </proyecto>
Instrucciones de configuración
web.xml
; Mapeo-> <Servlet> <Servlet-name> SpringMVC </Servlet-Name> <Servlet-Class> org.springframework.web.servlet.dispatcherservlet </servlet-cla SS> <Init-param> <amamname> contextConfigLocation </amamname> <amam-value> /webinf/springmvc-servlet.xml </param-value> </init-param> <!- <OAD-ONSTARTUP> 1 </load-on-startup>-> </servlet> <ervlet-mapping> <ervlet-name> springmvc </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </seb-app>
springmvc-servlet.xml
<? 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.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.1.1.xsd"> omin El paquete y el subcuence subcuence-> <context: component-scan base-pakage = "com.maven01.*" /> <!-No maneje el recurso estático-> <mvc: default-servlet-handler /> <!-Si usa anotación, debe configurar la siguiente configuración-> <mvc: annotation-driven /> <!-savelet de despachador-> <mvc: recursos: recursos de recursos ubicación = "/static/"/> <!-Configurar el interneourceViewResolver-> <!-Si usa la anotación, debe configurar la siguiente configuración-> <bean id = "mappingjacksonhttpmessageConverter" class = "org.springFrame.httttttttttpMess name = "SupportedMediatyPes"> <List> <Vonal> Application/Json; Charset = Utf-8 </value> </List> </property> </bean> <Bean> <BeanClass = "org.springframework.web.servlet.view.internalresourceViewResolver name = "prefix" value = "/web-Inf/View/"/> <!-Suffix-> <Property Name = "Suffix" Value = ". Jsp"/> </ Bean> <!-MySql-> <!-Introducción a la información de configuración de la fuente de datos externa-> <beanclass = "Org.springfframework.beans.factory.concfig.propertyplaceCholderConfonfigurer"> "Org.springFframework name="locations"><value>classpath:jdbc.properties</value></property></bean><!-- Configure data source--><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value = "$ {jdbc.driver}"> </property> <propiedad name = "url" value = "$ {jdbc.url}"> </propiety> <Property name = "username" value = "$ {jdbc.username}"> </sperties> <!-spring y mybatis están perfectamente integrados, y no hay necesidad de miBATISMACIONES DE CONFIGURACIÓN id="sqlSessionFactory"><property name="dataSource" ref="dataSource" /><!-- Automatically scan mapping.xml file --><property name="mapperLocations" value="classpath:com/maven01/mapper/*.xml"></property></bean><!-- The package name where the DAO interface is located is, Spring will automatically find the class under it -> <Bean> <Property Name = "BasePackage" Value = "com.maven01.dao"/> <Property Name = "SqlSessionFactoryBeanName" value = "SqlSessionFactory"> </property> </bean> <!-Configure el administrador de transacciones-> << id = "txManager" class = "org.springframework.jdbc.datasource.dataSourCetransactionManager"> <Property name = "DataSource" ref = "DataSource"> </property> </ bean> </beans>jdbc.propertiesjdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc: mysql: // localhost: 3306/empleados? UseUnicode = true & caracterSencoding = utf-8JDBC.UserNAME = rootjdbc.password = sqlsaSa
Configuración del archivo mapper mybatis
<? xml versión = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper Namespace = "com.maven01.dao.iemloyEdeedao"> <select id = "getall" resultType = "com.maven01.pojo.Employee"> SELECT*fromMployEesLimit 1,10 </select> </mapper>
estructura db
Este proyecto utiliza la base de datos de empleados de muestra MySQL, y los amigos que la necesitan pueden descargarlo ellos mismos.
http://www3.ntu.edu.sg/home/ehchua/programming/sql/sampledatabases.html
Descripción del código
modelo
paquete com.maven01.pojo; empleado de clase pública {public int emp_no; public String First_Name; public int getemp_no () {return emp_no;} public void setemp_no (int emp_no) {this.emp_no = emp_no;} public string getFirst_Name () {return_Name;} First_Name) {this.first_name = first_name;}}Dao
paquete com.maven01.dao; import java.util.list; import org.springframework.stereotype.repository; import
servicio
paquete com.maven01.service; import java.util.list; import com.maven01.pojo.employee; interfaz pública iEmployEesService {Public List <ElprayeeeS> getAll ();}servicio de servicio
paquete com.maven01.service.impl; import java.util.list; import org.springframework.beans.factory.annotation.aUtowired; import org.springframework.stereotype.service; import Com.maven01.dao.iemloyeEdeao; import.maven01.PoJoJ.EmpoMee; com.maven01.service.*; import javax.annotation.resource; @ServicePublic Public EmployeeServiceImpl implementa IEMPloyEesService {@AUTOWIREDRIVATE IEMPLISPLEEEDAO DAO; Public EmployeServiceImpl () {} Lista pública <Eloza> getall () {return dao.getall ();}}}}controlador
paquete com.maven01.controller; import java.util.arrayList; import java.util.list; import javax.annotation.resource; import org.springframework.stereotype.controller; import. org.springframework.web.bind.annotation.requestmethod; import org.springframework.web.bind.annotation.ResponseBody; import com.maven01.dto.*; import com.maven01.pojo.employee; import com.maven01.service.iEmployEesservice;@controlador@requestmapping ("/mvc") public class Democontroller {@ResourcePrivate iEmployEesservice EmployeeService; @RequestMapping (método = requestMethod.get, value = "/getEmpeelist", produce = "aplicación/jSon") Public @RespseSStyBhyBkyThy/LISTATHY <empleado <empleado) {return EmployeService.getAll ();}}Resultados de ejecución
El código de este proyecto se ha enviado a Git, y la dirección de descarga es https://github.com/hbb0b0/springmybatis.git
Las trampas encontradas:
MappersCannerConfigurer está configurado para incluir solo la capa DAO. Nunca configure todo el paquete para escanear, de lo contrario se producirá un error: no se define un error de tipo calificador de tipo [com.maven01.service.iMployEeseService].
< [com.maven01.service.iEmployEesService] está definido: frijol único esperado pero encontrado 2: EmployeeServiceImpl, iEmployEesserviceat org.springframework.beans.factory.support.defefaultableBeanFactory.DoresloLedEpendency (predeterminado (predeterminado seganbeanfactory.Java:1061) <!- el paquete de los paquetes. Spring encontrará automáticamente la clase en él -> <Bean> <Property Name = "BasePackage" Value = "com.maven01.dao"/> <Property name = "SqlSessionFactoryBeanName" value = "SQLSessionFactory"> </Property> </Bean>
Tenga en cuenta que la coincidencia del paquete MyBatis son versiones más bajas de MyBatis-Spring y MyBatis y Spring.
java.lang.abstractMethodError: org.mybatis.spring.transaction.springmanagedtransaction.gettimeout () l
Resumir
Lo anterior es una explicación detallada del ejemplo de marco de mybatis de combinación de Spring MVC presentada por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!