説明します
このプロジェクトは、主にSpring MVC + MyBatisであるコントローラーを実証するMaven構造を採用して、JSON形式でデータを取得し、データを返すことを実証しています。
プロジェクト構造
パッケージの依存関係と指示
POMファイル:
<Project XMLNS = "http://maven.apache.org/pom/4.0.0" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation = "http://maven.apach/4.0. 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> <url> http://maven.apache.org </url> <properties> <! - mybatisバージョン番号 - > <mybatis.version> 3.2.6 </mybatis.version> <! - log4j logファイル管理パッケージパッケージバージョン - > <slf4j.version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </properties> <dependencies> <依存関係> <groupid> junit </groupid> <artifactid> junit </artifactid> <ver ION> 3.8.1 </version> <scope> test </scope> </dependency> <dependency> <groupid> org.springframework </groupid> <artifactid> spring-webmvc </artifactid> <バージョンhttps://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl-> <dependency> <groupid> org.codehaus.jackson> <artifactid> jackson-mapper-asl </artifactid> 1.9.2 </bervers> https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl-> <dependency> <groupid> org.codehaus.jackson> <artifactid> jackson-core-asl </artifactid> <バージョンhttps://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind-> <dependency> <ship groupid> com.fasterxml.jackson.core </groupid> <artifactid> jackson-databind </artifactid> <バージョン> - > <依存関係> groupId> org.mybatis </groupid> <artifactid> mybatis-spring </artifactid> <バージョン> 1.3.0 </version> </dependency> <! - mysqlデータベースリンクJARをインポートしますパッケージ - > <依存関係> <groupId> mysql </groupid> <artifactid> mysql-connector-java </artifactid> <バージョン> 5.1.30 </version> </dependency> <! - mybatis ormフレームワーク - > <依存関係> <groupId> org.mybatis </groupid> <artifactid> mybatis </artifactid> <version> 3.4.1 </version> </dependency> <dependency> <groupid> org.springframework </groupid> <artifactid> spring e </version> </dependency> <dependency> <groupid> org.springframework </groupid> <artifactid> spring-jdbc </artifactid> <バージョン> 4.1.2. release </versions </version> </depence> </dependencies> <burtion> <burtion> maven01 </finalName> </burtion> </</project>
構成手順
web.xml
<!doctype web-app public " - // sun microsystems、inc .//dtd webアプリケーション2.3 // en" "http://java.sun.com/dtd/web-app> <display-name> Archytype作成されたWebアプリケーション</dislives-mvcdiservertの設定マッピング - > <Servlet> <Servlet-Name> springMVC </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-cla ss> <init-param> <param-name> contextconfiglocation </param-name> <param-value> /web-inf/springmvc-servlet.xml </param-value> </init-param> <! - <load-on-startup> 1 </load-on-startup> - > </servlet> <servlet-mapping> <servlet-name> springmvc </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
springmvc-servlet.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:Context = "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.xsd"> <!---パッケージとサブパッケージをスキャン - > <コンテキスト:Component-ScanScansベースパッケージ= "com.maven01。*"/> <!次の設定を構成する必要があります - > <mvc:annotation-driven/> <! - dispatcher servelet-> <mvc:resources mapping = "/static/**" locions = "/static/"/> <! - internalresourceviewresolver-を構成 - > <! - 解決を使用する必要があります。 id = "mappingjacksonhttpmessageconverter" class = "org.springframework.http.converter.json.mappingjackson2httpmessageconverter"> <プロパティname = "supportedmediatypes"> <list> <value> application/json; charset = utf-8 </value> </list> </property> </bean> <bean> <beanclass = "org.springframework.web.servlet.view.internalresourceviewResolver" id = "InternalResourceviewiewiedolver"> name = "prefix" value = "/web-inf/view/"/> <! - suffix-> <プロパティ名= "suffix" value = "/> </bean> <! - mysql - > <! - 外部データソース構成情報 - > <beanclass =" org.springframework.beans.config.config.propertyplaceconcurer name = "locations"> <value> classpath:jdbc.properties </value> </property> </bean> <! - configure data source-> <bean id = "datasource" class = "org.springframework.jdbc.datasource.datasource.drivermanagerdatasource" value = "$ {jdbc.driver}"> </property> <property name = "url" value = "$ {jdbc.url}"> </property> <プロパティ名= "username" value = "$ {jdbc.username}"> </property> <! id = "sqlsessionfactory"> <プロパティ名= "dataSource" ref = "dataSource"/> <! - 自動的にスキャンmapping.xmlファイル - > <プロパティ名= "mapperlocations" value = "classpath:com/maven01/mapper/*。 - > <bean> <プロパティ名= "basepackage" value = "com.maven01.dao"/> <プロパティname = "sqlsessionfactorybeanname" value = "sqlsessionfactory"> </property> </bean> <! - 構成トランザクションマネージャー - > <bean id = "txmanager" class = "org.springframework.jdbc.datasource.datasourcetransactionmanager"> <プロパティ名= "datasource" ref = "datasource"> </jbean> </bean> </beans>jdbc.propertiesjdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc:mysql:// localhost:3306/employess?useunicode = true&useunicoding = utf-8jdbc.username = rootjdbc.password = sqlsa
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"> <select id = "getall" resulttype = "com.maven01.pojo.employee"> select*frommployeEeslimit 1,10 </select> </mapper>
DB構造
このプロジェクトでは、MySQL Sample Employeeのデータベースを使用しており、それを必要とする友人は自分でダウンロードできます。
http://www3.ntu.edu.sg/home/ehchua/programming/sql/sampledatabases.html
コードの説明
モデル
パッケージ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 getFirt_name( first_name){this.first_name = first_name;}}ダオ
パッケージcom.maven01.dao; import java.util.list; import org.springframework.stereotype.repository; import com.maven01.pojo.employee
サービス
パッケージcom.maven01.service; Import java.util.list; import com.maven01.pojo.employee; public interface iEmployeService {public List <employee> getAll();}serviceimpl
パッケージcom.maven01.service.impl; import java.util.list; import org.springframework.beans.factory.annotation.autowired; import org.springframework.sedereotyte.service; import com.maven01.dao.imaven01.poaileeedao; impolipolyeedao; com.maven01.service。*; Import javax.annotation.resource; @servicepublic class employeserviceimplはiEmployeEedAo {@autowiredprivate iEmployeeedapl(){} public list <Employee> getall(){return dao.getall();};コントローラ
パッケージ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.Requestmapping; import org.springframework.web.bind.annotation.requestmethod; Import org.springframework.web.bind.annotation.responsebody; Import com.maven01.dto com.maven01.service.iemployeeservice;@controller@requestmapping( "/mvc")public class democontroller {@resourceprivate iemployeeservice employeservice;@requestmapping(method = requestmethod.get、value = "/getempoideeList」 employeservice.getall();}}実行結果
このプロジェクトのコードはGITに提出されており、ダウンロードアドレスはhttps://github.com/hbb0b0/springmybatis.gitです。
遭遇した落とし穴:
MapperScannerConfigurerは、DAOレイヤーのみを含むように構成されています。スキャンするためにパッケージ全体を設定しないでください。そうしないと、エラーが発生します。タイプの適格なBeanはありません[com.maven01.service.iemployeEservice]が定義されています:予想される単一のマッチングBeanですが、2:EmployeingErviceImpl、iEmployeServiceが見つかりました
<! - スプリングはDAOインターフェイスの下にクラスを自動的に見つけます - > <bean> <プロパティ名= "basepackage" value = "com.maven01。*"/> <プロパティ名= "sqlsessionfactorybeanname" value = "sqlsessionfactory"> </property> </bean> org. [com.maven01.service.iemployeEservice]のタイプの定義:予想される単一のマッチングビーンですが、2:EmployeingerviceEserviceat org.springframework.beans.factory.support.defaultlistablebeanfactory.doreSolvedency(defallistablebeanfactory.javaffactoryfactory)あるSpringは自動的にその下にクラスを見つけます - > <bean> <プロパティ名= "basepackage" value = "com.maven01.dao"/> <プロパティ名= "
MyBatisパッケージのマッチングは、MyBatis-SpringとMyBatisおよびSpringのより低いバージョンであることに注意してください。
java.lang.abstractmethoderror:org.mybatis.spring.transaction.springmanagedtransaction.getTimeout()l
要約します
上記は、編集者が紹介したSpring MVCの組み合わせMyBatisフレームワークの例の詳細な説明です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!