يوضح
يتبنى هذا المشروع بنية Maven ، والتي توضح بشكل أساسي MVC + MyBatis ، وحدة التحكم للحصول على البيانات وإرجاع البيانات بتنسيق JSON.
هيكل المشروع
حزم التبعيات والتعليمات
ملف POM:
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/maven-v4_0_0.xsd"> <modelversion>4.0.0</modelversion><groupid> com.hbb0b0.maven01</gro UPID> <STIFACTID> MAVEN01 </ARTIFACTID> <PACKIGNing> WAR </COPAGING> <SEDIST> 0.0.1-SNAPSHOT </version> <name> Maven01 maven webapp </mame> <Url> http://maven.apache.org </url> <properties> <!-رقم إصدار MyBatis-> <MyBatis.version> الإصدار-> <lf4j.version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </sperties> <ependencies> <redency> <roupiD> Junit </rougeid> <StifactId> Junit </attifactid> <bor ion> 3.8.1 </splex> <scope> اختبار </scope> </sependency> <redency> <roupiD> org.springframework </rougeid> <StifactId> spring-webmvc </shintifactid> <splem https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl-> <redency> <roupend> org.codehaus.jackson </groupid> <Stifactid> chackson-mapper-asl </artifactid> https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-asl-> <reperency> <roupend> org.codehaus.jackson </groupid> <StifactId> Jackson-Core-Asl </artifactid> https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind-> <remotency> <roupeD> com.fasterxml.jackson.core </rougiD> <StifactId> jackson-databind </artifactid> -> <Rependency> <roupiD> org.mybatis </groupId> <StifactId> mybatis-spring </artifactId> <sored> 1.3.0 </version> </rependency> <!-استيراد رابط قاعدة بيانات MySQL جرة Package-> <redency> <roupend> mysql </rougled> <StifactId> mysql-connector-java </shintifactid> <الإصدار> 5.1.30 </version> </rempency> <!-MyBatis orm الإطار-> <reperency> <roupend> org.mybatis </rougiD> <intifactid> mybatis </stifactid> <الإصدار> 3.4.1 </version> </sependency> <redency> <roucid> org.springframework </rouciDD> e </splired> </preminency> <reperency> <roupiD> org.springframework </rougeid> <StifactId> spring-jdbc </shintifactid> <sored> 4.1.2.release </version> </repreadency> </rependencies>
تعليمات التكوين
web.xml
<! doctype web-app public "-// sun microsystems ، Inc.//dtd web application 2.3 // en" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> Mapping-> <vervlet> <Servlet-Name> springmvc </servlet-name> <Servlet-Class> org.springframework.web.servlet.dispatcherservlet </servlet-Cla ss> <Ing-param> <Param-name> contextConfigLocation </param-name> <param-value> /web-inf/springmvc-servlet.xml </param-value> </ith-param> <!- <load-on-startup> 1 </over-on-startup>-> </stervlet> <Servlet-mapping> <Sradlet-Name> springmvc </servlet-name> <Url-pattern>/</url-pattern> </servlet-mapping> </web-app>
springmvc-servlet.xml
<؟ xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http: //www.sprin gframework.org/schema/mvc"xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhtp://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/mvc/spring-mvc-4.1.xsd"> < يجب تكوين الإعداد التالي-> <mvc: تعويذة التعليق التوضيحي/> <!-مرسل Servelet-> <mvc: Mapping الموارد = "/static/**" الموقع = "/static/"/> <!-تكوين internalResourceViewResolver-> <! id = "mappingjacksonhttpmessageConverter" class = "org.springframework.http.converter.json.mappingjackson2httpmessageConverter"> <property name = "supportedMediAtypes"> <list> <value> application/json ؛ charset = utf-8 </value> </list> </property> </bean> <beanclass = "org.springframework.web.servlet.internalResourceViewResolver" id = "internalresource value = "/web-inf/view/"/"/> <!-لاحقة-> <property name =" falue "value =". name = "SOCATIONS"> <Value> classpath: jdbc.properties </value> </property> </boun> <!-تكوين مصدر البيانات-> <bean id = "datasource" class = "org.springframework.jdbc.datasource.drivermanagerdatasource value = "$ {jdbc.driver}"> </property> <property name = "url" value = "$ {jdbc.url}"> </propect id = "sqlsessionfactory"> <property name = "datasource" ref = "datasource"/> <! -> <bean> <property name = "basePackage" value = "com.maven01.dao"/> <property name = "sqlsessionfactorybeanname" value = "sqlsessionfactory id = "txmanager" class = "org.springframework.jdbc.datasource.datasourcetransactionManager"> <property name = "datasource" ref = "datasource"> </property> </ban> </bans>jdbc.propertiesjdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc: mysql: // localhost: 3306/staff؟ useUnicode = true & characterencoding = utf-8jdbc.username = rootjdbc.password = sqlsa
تكوين ملف mappatis mamper
<؟ مساحة الاسم = "com.maven01.dao.iemployeedao"> <حدد ID = "getall" resulttype = "com.maven01.pojo.employee"> حدد*من MoplyEesLimit 1،10 </select> </papper>
هيكل DB
يستخدم هذا المشروع قاعدة بيانات MySQL Sample Employeees ، والأصدقاء الذين يحتاجون إليها يمكنهم تنزيلها بأنفسهم.
http://www3
وصف رمز
نموذج
package com.maven01.pojo ؛ موظف الطبقة العامة {public int emp_no ؛ السلسلة العامة first_name ؛ public int getemp_no () {return emp_no ؛} public void setemp_no (int emp_no) {this.emp_no = emp_no ؛ first_name) {this.first_name = first_name ؛}}داو
package com.maven01.dao ؛ import java.util.list ؛ استيراد org.springframework.stereotype.repository ؛ استيراد com.maven01.pojo.employee ؛ واجهة عامة iemployeedao
خدمة
package com.maven01.Service ؛ import java.util.list ؛ import com.maven01.pojo.employee ؛ public interface iemployeService {public list <evelope> getAll () ؛}ServiceImpl
package com.maven01.service.impl ؛ import java.util.list ؛ استيراد org.springframework.beans.factory.annotation.autowired ؛ import org.springframework com.maven01.Service.*؛ import javax.annotation.resource ؛ servicepublic class referialerviceImpl تنفذ iemployeeservice {@autowiredprivate iemployeedao dao ؛ public armaileRerviceImpl () {} القائمة العامة <morkeee> getall ()وحدة تحكم
package 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 ؛ org.springframework.web.bind.annotation.requestmethod ؛ استيراد org.springframework.web.bind.annotation.responseBody ؛ import com.maven01.dto.*؛ import com.maven01.pojo com.maven01.service.iemployeService ؛@controller@requestMapping ("/mvc") الطبقة العامة democontroller {resourcePrivate iemployeEeservice amployervice ؛@requestmapping (method = requestMethod.get ، value = "/getEmployeeliS الموظفين. getall () ؛}}نتائج التشغيل
تم إرسال رمز هذا المشروع إلى GIT ، وعنوان التنزيل هو https://github.com/hbb0b0/springmybatis.git
المزالق التي واجهتها:
تم تكوين MappersCannerConfigurer لتضمين طبقة DAO فقط. لا تقم مطلقًا بتكوين الحزمة بأكملها للمسح الضوئي ، وإلا فإن الخطأ سيحدث: لا يوجد حبة مؤهلة من النوع [com.maven01.Service.IemployeService]
<!-سوف يجد الربيع تلقائيًا الفئة ضمن واجهة DAO-> <Bean> <property name = "basePackage" value = "com.maven01.*"/> <property name = "sqlsessionfactorybeanname حبة من النوع [com.maven01.Service.IemployeService] تم تعريفها: متوقع واحد مطابق بين الفاصوليا ولكنه عثر عليه 2: موظفين ، eMployeEeserviceat org.springframework.beans.factory.support.defaultlistable. توجد واجهة DAO ، ستجد Spring تلقائيًا الفئة الموجودة أسفلها -> <bean> <property name = "basePackage" value = "com.maven01.dao"/> <property name = "sqlsessionfactorybeanname" value = "sqlsessionfactory"> </property>
لاحظ أن مطابقة حزمة MyBatis هي إصدارات أقل من MyBatis-Spring و Mybatis و Spring.
java.lang.abstractmethoderror: org.mybatis.spring.transaction.springmanagedtransaction.getTimeout () l
لخص
ما ورد أعلاه هو شرح مفصل لمجموعة MVC MVC MyBatis Framework مثال الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!