menjelaskan
Proyek ini mengadopsi struktur Maven, yang terutama menunjukkan Spring MVC + Mybatis, pengontrol untuk mendapatkan data dan mengembalikan data dalam format JSON.
Struktur proyek
Ketergantungan dan instruksi paket
File 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.rompe.rompe.romper http://maven.apache.org/maven-v4_0_0.xsd"><modelversion>4.0.0</modelversion><groupid>com.hbb0b0.maven01</gro Upid> <ArTifactId> maven01 </artifactid> <packaging> war </packaging> <version> 0.0.1-snapshot </version> <name> maven01 MAVEN Webapp </name> <rerl> http://maven.apache.org </ruRl> <properties> <!-Nomor versi mybatis-> <mybatis.version> 3.2.6 </mybatis.version> <!-Paket Manajemen File Log4j Log Log Log Log4J Versi-> <slf4j.version> 1.7.7 </slf4j.version> <tog4j.version> 1.2.17 </log4j.version> </ProSies> <dependencies> <dependency> <groupid> Junit </groupid> <Artifactid> junit </arttifactid> <sidan vers ion> 3.8.1 </version> <scope> tes </ scope> </dependency> <dependency> <GroupId> org.springframework </groupid> <ArTifactId> Spring-WEBMVC </artifactid> <version> 4.1.2.release </versi> </dependency> <!--Versi 4.1.2.release </Versi> </Dependency> <! https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl-> <dependency> <groupid> org.codehaus.jackson </groupid> <ArTifactid> Jackson-Mapper- Asl </artifactid> </Version> 1.9.2 </Version> </Dendening </Artifactid> </Version> </Version> </Version> </ARTIFACTID> </Version> </Version> </Version> </artifactid </artifactid> https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl-> <dependency> <groupid> org.codehaus.jackson </groupid> <ArTifactid> Jackson-core- Asl </artifactid> </Versi> 1.9.13 </Version> </Version> </Artifactid> </Version> 1.9.13 </Version> </Version> </Artifactid> </Version> 1.9.13 </Version> </Artifactid> </Version> </Version> </artifactid> </artifactid </artifactid> https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind-> <dependency> <groupid> com.fasterxml.jackson.core </groupid> <ArtiFacTID> Jackson-Databind </arttifactid> </groupid> <artifactid> Jackson-databind </arttifactid> </Versi 2.9.3. -> <dependency> <GroupId> org.mybatis </groupid> <ArTifactId> mybatis-spring </artifactid> <version> 1.3.0 </version> </dependency> <!-impor tautan database mySQL Paket-> <dependency> <GroupId> mysql </groupid> <ArTifactId> mysql-connector-java </artifactid> <version> 5.1.30 </version> </dependency> <!-mybatis orm framework--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.1</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.1.2.RELEAS E </version> </dependency> <dependency> <GroupId> org.springframework </groupid> <ArTifactId> spring-jdbc </artifactid> <version> 4.1.2.release </version> </dependency> </dependencies> <build> <finalname> maven01 </finalname> </dependencies> <bangun> <fulname> maven01 </finalname> </final/
Instruksi konfigurasi
Web.xml
<! Doctype Web-App Public "-// Sun Microsystems, Inc.//dtd Aplikasi Web 2.3 // en" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <pplay-name> arketipe yang dibuat aplikasi web </display-name> <! Pemetaan-> <servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-cla SS> <InT-Param> <Param-name> ContextConfigLocation </param-name> <Param-Value> /web-inf/springmvc-servlet.xml </param-value> </itin-param> <!- <Boad-on-startup> 1 </boad-in-startup>-> </servlet> <servlet-papping> <servlet-name> springmvc </servlet-name> <ratl-pattern>/</url-pola> </servlet-mapping> </web-app>
springmvc-servlet.xml
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http:BaMaM.MFC" xsi: schemalocation = "http:B http://www.springframework.org/schema/beans/spring-teans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhtp://www.springframework.org/schema/mvc http://www.springframework.org/schema/schema/sprammc/schema/srammc.1 Pindai paket dan paket sub-> <konteks: komponen-scan-package = "com.maven01.*" /> <!-Jangan menangani sumber daya statis-> <MVC: Default-Servlet-handler /> <!-Jika Anda menggunakan anotasi, Anda harus mengonfigurasi pengaturan berikut-> <mvc: annotation-driven /> <! pemetaan = "/static/**" location = "/static/"/> <!-Konfigurasikan InternalResourCeviewResolver-> <!-Jika Anda menggunakan anotasi, Anda harus mengonfigurasi pengaturan berikut-> <bean id = "MappingJacksonHttpMessageConverter" class = "org.springframework.http.converter.json.mappingjackson2httpmessageConverter"> <properti name = "SupportedMediatypes"> <list> <value> Aplikasi/json; charset = UTF-8 </ value> </list> </prop Propert> </ bean> <bean> <beansclass = "org.springframework.web.servlet.view.internalResourceview InteroPramework" id = "oLiew name = "prefix" value = "/web-inf/view/"/> <!-suffix-> <properti name = "sufiks" value = ". jsp"/> </ bean> <!-mysql-> <!-memperkenalkan informasi konfigurasi data eksternal-> <beeAnclass = "org.spramework.confacpory.confactory.confactory.confactory. name = "Lokasi"> <value> classpath: jdbc.properties </ value> </property> </ bean> <!-Mengkonfigurasi sumber data-> <bean id = "DataSource" class = "org.springframework.jdbc.datasource.driverManMerDataSource"> <" value="${jdbc.driver}"></property><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.username}"></property><!-- spring and MyBatis are perfectly integrated, and there is no need for mybatis configuration mapping file --><bean ID = "SQLSessionFactory"> <properti name = "DataSource" ref = "DataSource"/> <!-secara otomatis memindai file pemetaan. it-> <bean> <name properti = "basepackage" value = "com.maven01.dao"/> <name properti = "sqlSessionFactoryBeanName" value = "sqlSessionFactory"> </property> </bean> <!-Monfigure Transaction Manager-> <Bean " id = "txManager" class = "org.springframework.jdbc.datasource.datasourCetransactionManager"> <name properti = "DataSource" ref = "DataSource"> </propert> </bean> </bean>jdbc.propertiesjdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc: mysql: // localhost: 3306/karyawan? UseUnicode = true & characterencoding = utf-8jdbc.username = rootjdbc.passer = SQ
Konfigurasi file mapper mybatis
<? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> namespace = "com.maven01.dao.iemployeedao"> <pilih id = "getAll" resultType = "com.maven01.pojo.employee"> Pilih*darimployeesLimit 1,10 </pilih> </papper>
Struktur DB
Proyek ini menggunakan database sampel MySQL, dan teman -teman yang membutuhkannya dapat mengunduhnya sendiri.
http://www3.ntu.edu.sg/home/ehchua/programming/sql/sampledatabases.html
Deskripsi kode
model
package com.maven01.pojo;public class Employee {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 first_name;}public void setFirst_name (string first_name) {this.first_name = first_name;}}Dao
Paket com.maven01.dao; import java.util.list; impor org.springframework.stereotype.repository; impor com.maven01.pojo.employee; antarmuka publik iemployeedao {daftar publik <eployee> getAll ();}melayani
Paket com.maven01.service; import java.util.list; import com.maven01.pojo.employee; antarmuka publik iemployeeservice {daftar publik <eployee> getAll ();}LayananMPL
Paket com.maven01.service.impl; impor java.util.list; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.stereotype.service; impor com.maven01.dao.ieManeedaeoedao; com.maven01.service.*; impor javax.annotation.resource; @servicepublic class peopleServiceImpl mengimplementasikan iemployeeservice {@AutowiredPrivate iemployeedao Dao; Retroka PublicerServiceImpl () {} Daftar publik <Karyawan> getall () {return dao.) {{} Publik <karyawan> getall () {return dao.) {{} PUBLIK <) {GetAlle {) {{) {{) {{) {{{) {{{) {{{) {{{) {{{) {{{) {{{) {{{) {{)pengontrol
Paket com.maven01.controller; import java.util.arraylist; import java.util.list; import javax.annotation.resource; impor org.springframework.stereotype.controller; impor org.springframework.web.bind.annotation.rupaping. org.springframework.web.bind.annotation.requestmethod; impor org.springframework.web.bind.annotation.responseBody; impor com.maven01.dto.*; impor com.maven01.pojo.eMireee; impor impor; Impor com.maven01.service.IEmployeeService;@Controller@RequestMapping("/mvc")public class DemoController {@Resourceprivate IEmployeeService employeeService;@RequestMapping(method = RequestMethod.GET, value = "/getEmployeeList", produces = "application/json")public @ResponseBody List<Employee> getEmployeeList() {return stadyweerservice.getall ();}}Hasil berjalan
Kode proyek ini telah dikirimkan ke git, dan alamat unduhannya adalah https://github.com/hbb0b0/springmybatis.git
Jebakan yang ditemui:
MappersCannerConfigurer dikonfigurasi hanya untuk memasukkan lapisan DAO. Jangan pernah mengkonfigurasi seluruh paket untuk dipindai, jika tidak, kesalahan akan terjadi: tidak ada kacang kualifikasi tipe [com.maven01.service.iemployeeservice] didefinisikan: kacang yang cocok dengan kacang tunggal tetapi menemukan 2: karyawan layanan, iemployeeservice
<!-Musim semi akan secara otomatis menemukan kelas di bawah antarmuka DAO-> <bean> <name properti = "basepackage" value = "com.maven01.*"/> <Nama properti = "sqlSessionFactoryBeanName" value = "sqlSessionFactory"> </properti. Kualifikasi kacang dari tipe [com.maven01.service.iemployeeservice] didefinisikan: kacang yang cocok dengan kacang tunggal tetapi ditemukan 2: karyawan serviceImpl, iemployeeserviceat org.springframework.beans.factory.support.defaultListableBeanFactory.doresolvedEpendency (leFaUrtoryBeanFactory. Nama paket di mana antarmuka DAO berada, Spring akan secara otomatis menemukan kelas di bawahnya -> <Bean> <nama properti = "Basepackage" value = "com.maven01.dao"/> <name properti = "sqlSessionFactoryBeanName" value = "sqlsessionfactory"> </properti> </bean>
Perhatikan bahwa pencocokan paket mybatis adalah versi yang lebih rendah dari mybatis-spring dan mybatis dan spring.
java.lang.abstractmethoderror: org.mybatis.spring.transaction.springManagedTransaction.getTimeout () l
Meringkaskan
Di atas adalah penjelasan terperinci tentang kombinasi MVC Spring MVC Contoh Kerangka Mybatis yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!