تقدم هذه المقالة بشكل أساسي تكامل Maven و MyBatis و Spring MVC (الصور والنصوص) من Java Framework Construction. تتم مشاركتها معك. التفاصيل كما يلي:
SSM (Spring+SpringMVC+MyBatis) ، وهو حاليًا حل هندسة على مستوى المؤسسة السائدة نسبيًا. يقسم نموذج تصميم MVC القياسي النظام بأكمله إلى أربع طبقات: طبقة العرض وطبقة وحدة التحكم وطبقة الخدمة وطبقة DAO. يتم استخدام springMVC لتكون مسؤولة عن إعادة توجيه الطلب وإدارة العرض ، ويقوم Spring بتنفيذ إدارة كائنات الأعمال ، ويتم استخدام MyBatis كمحرك ثبات كائن البيانات.
تفاصيل الإطار
Spring عبارة عن إطار عمل خفيف الوزن Java تم إنشاؤه لحل تعقيد تطوير تطبيقات المؤسسة. لا يقتصر غرض الربيع على تطوير من جانب الخادم. من منظور البساطة ، قابلية الاختبار والاقتران الفضفاض ، يمكن لأي تطبيق Java الاستفادة من الربيع. ببساطة ، الربيع هو انعكاس خفيف للسيطرة (IOC) وإطار الحاوية الموجهة نحو القسم (AOP).
SpringMVC هو منتج لاحق من Springframework ، يفصل أدوار وحدات التحكم ، وكائنات النماذج ، والمرسلات ، وكائنات المعالج. هذا الفصل يجعلها أسهل في التخصيص.
Mybatis هو إطار طبقة الثبات القائم على Java. يوفر MyBatis إطار عمل طبقة الثبات بما في ذلك خرائط SQL وكائنات الوصول إلى البيانات (DAO) مما يزيل الإعداد اليدوي لجميع كود ومعلمات JDBC تقريبًا واسترجاع مجموعات النتائج. يستخدم MyBatis XML البسيط أو التعليقات التوضيحية للتكوين والتعيينات الخام لتعيين واجهات و java للتسجيلات في قاعدة البيانات.
1. تنزيل Eclipse
تنزيل http://www.eclipse.org/downloads/packages/eclipse-ide-java-e-developers/marsr
اختر الإصدار الذي تريده
2. إنشاء مشروع Maven جديد
حدد ملف> جديد> مشروع Maven
يمكنك رؤية الواجهة التالية
انقر فوق "التالي" لمشاهدة الواجهة التالية. نختار Maven-Archetype-Webapp
انقر فوق التالي لرؤية. معرف المجموعة هو اسم الحزمة ، ومعرف Artifact هو اسم المشروع. هنا ندخل معرف المجموعة = com.cjt ، معرف Artifact = mymaven.
أخيرًا ، انقر فوق "إنهاء" لإنشاء المشروع بنجاح
3. التحضير قبل تشغيل المشروع
بعد إنشاء مشروع جديد ، يمكنك رؤية خطأ ، ناتج عن مسار الإنشاء والفشل في تقديم حزمة Javaee.
1) اضبط مسار البناء
انقر بزر الماوس الأيمن فوق المشروع> إنشاء مسار-> تكوين مسار الإنشاء ...
ثم حدد المكتبات
Maven يختار مكتبة بشكل افتراضي. هذا خطأ. دعنا نقر نقرًا مزدوجًا هذا لتحريره.
في الواجهة التالية ، نختار JRE البديل أو مساحة العمل الافتراضية JRE. هنا نختار بديل JRE.
2) تقديم حزمة Javaee
تقديم حزمة Javaee على pom.xml
<!-استيراد حزمة java ee jar-> <reperency> <roupiD> javax </groupId> <StifactId> javaee-api </shintifactid> <splection> 7.0 </version> </redence>
4. إعدادات ملف تكوين المشروع
1) تعيين pom.xml
قمنا الآن بإعداد pom.xml ونقوم بتنزيل حزمة JAR. قد تكون هذه العملية بطيئة بعض الشيء
pom.xml:
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/maven-v4_0_0.xsd "> <Dodeversion> 4.0.0 </modelversion> <roupiD> com.cjt </rougiD> <StifactId> mymaven </stifactid> WebApp </mame> <Url> http://maven.apache.org </url> <berties> <!-رقم إصدار الربيع-> <pring.version> 4.0.2.Release </spring <lf4j.version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </sugnes> <reperence> <rependency> حزمة JAR-> <REPERENCED> <GORELID> javax </rougiD> <STIFACTID> javaee-api </shintifactid> <splection> 7.0 </version> </sependency> <!-Spring Core Package-> <repensid> <roupencid> org.springframework </groupid> </reperency> <reperency> <roupiD> org.springframework </rougiD> <StifactId> Spring-Web </artifactId> <sophy> $ {spring.version} </version> </remebency> </arsifactid> <roupiD> org.springframework </groupid> <soph> $ {spring.version} </version> </sependency> <redency> <roupiD> org.springframework </rougiD> <StifactId> spring-tx </artifactid> <soph> $ {spring.version} </version> <StifactId> spring-jdbc </shintifactid> <soph> $ {spring.version} </version> </semperency> <reperence> <roupiD> org.springframework </rougiD> </intifactid> spring-webmvc </spring> {spring.version} <ProwEd> org.springframework </rougiD> <StifactId> Spring-Aop </stifactid> <الإصدار> $ {spring.version} </version> </repreadency> <redency> <sropid> org.springframework </rougeid> spring-contx </reperency> <reperency> <roupiD> org.springframework </rougiD> <StifactId> اختبار الربيع </attifactid> <sophy> $ {spring.version} </version> </sependency> <!-mybatis core package-> <sependency> <sophy> $ {mybatis.version} </version> </sependency> <!-MyBatis/Spring Package-> <reperency> <roupeD> org.mybatis </rougeid> <StifactId> mybatis-spring </stifactid> <splement> 1.2.2 </version> </depondency <ProupId> javax </rougiD> <StifactId> javaee-api </stifactId> <sored> 7.0 </version> </reperence> <!-استيراد حزمة رابط قاعدة بيانات mysql-> <redency> <sropency> </reperency> <!-استيراد حزمة JAR من DBCP لتكوين قاعدة البيانات في applicationContext.xml-> <rededency> <rouperency> commons-dbcp </rougeid> <trintifactid> commons-dbcp </sult> </stifiD> <StifactId> jStl </stifactid> <الإصدار> 1.2 </version> </repreadency> <!-حزمة إدارة ملفات السجل-> <!-السجل البدء-> <reperence> <roupl> log4j </rougiD> </artifactid> log4j </stifactid> <Rependency> <roupency> com.alibaba </rougiD> <StifactId> fastjson </stifactid> <الإصدار> 1.1.41 </version> </sependency> <redepency> <roupiD> org.slf4j </rougeid> <srensid> slf4j-api </shipactid> <splem <Rependency> <roupEd> org.slf4j </rougiD> <StifactId> SLF4J-LOG4J12 </stifactid> <sophy> $ {slf4j.version} </version> </respency> <!-log end->! <StifactId> Jackson-Mapper-Asl </shintifactid> <الإصدار> 1.9.13 </version> </dependency> <!-تحميل حزمة مكونات-> dependency> <roupiD> commons-filepload </rougiD> <StifactId> commons-filepload </artifactid> <ProwEd> commons-io </rougiD> <StifactId> commons-io </stifactId> <sored> 2.4 </version> </sependency> <reperency> <roupiD> commons-codec </rougiD> </build> commons-comons </stifactid> <NinalName> testMaven01 </initalname> </buy> </project>2) إنشاء JDBC.Properties
driver = com.mysql.jdbc.driverurl = jdbc: mysql: // localhost: 3306/testusername = rootpassword =#define interial connection number initialsize = 1#define maximum maxavem = 20#define maxy maxidle = 20#define idle minidle
3) log4j.properties
### تعيين مستويات السجل #### log4j.rootlogger = debug ، stdout ، d ، elog4j.rootlogger = debug ، stdout ، d ### output to the console ### log4j.appender.stdout = org.apache.log4j.consoleapdenderlog4j.appender.stdout.targe = system.outlog4j.appender.stdout.layout = org.apache.log4j.patternlayout#log4j.appender.stdout.layout.conversionpattern = ٪ d {absolute} ٪ 5p ٪ c {1}: ٪ l-m ٪ m ٪ nlog4j.appender.stdout.layout.conversion. HH: mm: ss} [٪ c]-[٪ p] ٪ m ٪ n ### الإخراج إلى ملف السجل ### log4j.appender.d = org.apache.log4j.dailyRollingFiLeAppenderLog4j.appender.file = $ {springmvc.Root} /web-inf/log. truelog4j.appender.d.throshold = debug log4j.appender.d.layout = org.apache.log4j.patternlayoutlog4j.appender.d.layout.conversionpattern = ٪ -d {yyyy-mm-dd hh: mm: ss} [٪ t: ٪ r] ### log4j.appender.d = org.apache.log4j.dailyrollingfilePenderLog4j.appender.d.file = $ {springmvc.root} /web-inf/logs/error.log log4j.appender org.apache.log4j.patternlayoutlog4j.appender.d.layout.conversionpattern = ٪ -d {yyyy-mm-dd hh: mm: ss} [٪ t: ٪ r]-[٪ p] ٪ m ٪ n4) spring-mvc.xml
<؟ xmlns: p = "http://www.springframework.org/schema/p" http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/spring-3 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- Automatically scan the package so that SpringMVC thinks that the class annotated by @controller under the package is the controller --> <context: component-scan base-package = "com.cjt.controller"/> <!-تجنب تنزيل الملفات عندما ينفذ ieax والعودة إلى json-> <bean id = "mappingjacksonhtttpmessageConverter"> property name = "supportedediatepes"> <list> text/html ؛ </bean> <!-ابدأ وظيفة التعليق التوضيحي لـ springmvc لإكمال رسم خرائط الطلبات والشروح pojos-> <bean> <property name = "messageconverters"> <list> <ref bean = "mappingjacksonhttpmessageConverter"/> <! التكوين-> <bean> <!-فهمي للتكوين هنا هو بادئة وتلويح السلسلة التي يتم إرجاعها تلقائيًا بطريقة الإجراء اللاحق لتصبح عنوان url متاح-> <property name = "prefix" value = "/web-inf/jsp/"/> <property name = factix "value =". إذا لم تستخدم تحميل الملف ، فلن تحتاج إلى تكوينه. بالطبع ، إذا لم تقم بالتطابق ، فلا داعي لإدخال حزمة مكون التحميل في ملف التكوين-> <bean id = "multipartresolver"> <!-الترميز الافتراضي-> <property name = "defaultencoding" value = "utf-8" /> <! الذاكرة -> <property name = "maxinmemorysize" value = "40960"/> </bean> </bans>
5) Spring-Mybatis.xml
<؟ xmlns: p = "http://www.springframework.org/schema/p" http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/spring-3 http://www.springframework.org/schema/mvc -> <bean id = "propertyConfigurer"> <property name = "location" value = "classpath: jdbc.properties" /> </bean> <bean id = "dataSource" destroy-method = "close"> <property name = "driverClassName" value = "$ {driver}" /> <property name = "orl" value = "$ {username}" /> <property name = "password" value = "$ {password}" /> <!-تهيئة حجم الاتصال-> <property name = "initialsize" value = "$ {{propertize} <name property = "maxidle" value = "$ {maxidle}"> </property> <!-الحد الأدنى لتوصيل الخمول-> <property name = "minidle" value = "$ {minidle}"> </property> <! myBatis ، لا ملف تعيين تكوين myBatis-> <bean id = "sqlsessionfactory"> <property name = "datasource" ref = "datasource"/> <!-المسح التلقائي لملفات mapping.xml-> <property name = "mapperlocations" value = "classpath: توجد واجهة DAO ، ستجد Spring تلقائيًا الفئة الموجودة أسفلها-> <bean> <property name = "basePackage" value = "com.cjt.dao"/> <property name = "sqlsessionfactorybeanname" value = "sqlsessionfactory"> </property> <! id = "TransactionManager"> <property name = "datasource" ref = "datasource"/> </bean> </bans>يتم إنشاء جميع الملفات المذكورة أعلاه في مجلد الموارد
5. قم بإنشاء رمز قاعدة البيانات تلقائيًا
1) إنشاء جدول جديد
أولاً ، نقوم بإنشاء جدول جديد user_t ، والحقول هي كما يلي:
2) تنزيل الحزمة
تشمل حزم التنزيل: mybatis-3.2.6.jar ، mybatis-generator-core-1.3.3.jar ، mysql-connector-java-5.1.39-bin.jar
3) تشغيل - قم بإنشاء رمز تلقائيًا
قم بإنشاء مجلد جديد ، بما في ذلك الملفات التالية
GeneratorConfig.xml هو ملف XML الذي ينشئ الرمز ، والمحتوى كما يلي:
<؟ برنامج تشغيل قاعدة البيانات-> <classpathentry location = "mysql-connector-java-5.1.39-bin.jar"/> <context id = "db2tables" targetruntime = "mybatis3"> <sovergenerator> <property name = "supressdate" value = "true"/> name = "cumpressallcomments" value = "true"/> </commentGenerator> <!-عنوان URL لرابط قاعدة البيانات ، اسم المستخدم ، كلمة المرور-> <jDBCConnection DriverClass = "com.mysql.jdbc.driver" connectionurl = "jdbc: mysql: // localhost: 3306/test userid =" <javatyperesolver> <property name = "forcebigdecimals" value = "false"/> </javatyperesolver> <!-إنشاء اسم الحزمة وموقع النموذج-> <javamodelgenerator targetpackage = "com.cjt.domain" targetprovel = "src" name = "trimstrings" value = "true"/> </javamodelgenerator> <!-إنشاء اسم الحزمة وموقع ملف التعيين-> <sqlmapgenerator targetpackage = "com.cjt.mapping The DAO-> <JavaclientGenerator type = "xmlmapper" targetpackage = "com.cjt.dao" targetproject = "src"> <property name = "EnlabesUBPackages" value = "true"/> </javaclientgenerator> <! <table tablename = "user_t" domainObjectName = "user" enableCountByExample = "false" enableupDateByExample = "false" enableleteberexample = "false" enlabeselexample = "false" selectByexamplequaryId = "false"> </contect
ثم نستخدم الأمر CMD لإدخال المجلد الذي تم إنشاؤه حديثًا وإدخال:
Java -jar Mybatis -Generator -Core -1.3.3.jar -Configfile GeneratorConfig.xml -Overwrite
أخيرًا ، يتم إنشاء الرمز.
ملاحظة: يتم إنشاء الرمز تلقائيًا هنا من خلال سطر الأوامر ، ويمكن للقراء أيضًا إنشاءه من خلال المكون الإضافي Eclipse.
6. رمز البدء
قم بإنشاء حزمة جديدة ، على النحو التالي: (يتم إنشاء جميع الأسهم تلقائيًا الرموز المذكورة أعلاه)
iuserservice.java
الواجهة العامة iuserservice {المستخدم العام getUserById (int id) ؛ }userviceiMpl.java
servicepublic class userviceImpl تنفذ iuserservice {autowired private iuserdao userdao ؛ public userviceRviceImpl () {system.out.println ("userviceRviceImpl") ؛ } المستخدم العام getUserById (int id) {return userDao.SelectByPrimaryKey (id) ؛ }}USERCONTROLLER.JAVA
@controller@requestMapping ("/user") الفئة العامة USERCONTROLLER {public USERCONTROLLER () {system.out.println ("USERCONTROLLER") ؛ } Resource private iuserservice uservice ؛ requestmapping ("/showuser") السلسلة العامة toindex (طلب httpservletrequest ، نموذج النموذج) {system.out.println ("UserController Showuser") ؛ int id = integer.parseint (request.getParameter ("id")) ؛ مستخدم المستخدم = userService.getUserById (id) ؛ model.addattribute ("user" ، user) ؛ إرجاع "Showuser" ؛ }}قم بإنشاء دليل جديد JSP ضمن web-inf ، وإنشاء ملفات ملفات جديدة أدناه
ShowUser.jsp
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" import = "java.util.*، com.cjt.domain. "http://www.w3.
أخيرًا ، أرفق web.xml
<؟ XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" تم إنشاء تطبيق الويب </display-name> <!-ملفات تكوين الربيع و myBatis-> <context-param> <Param-name> contextConfigLocation </param-name> <param-value> classpath: spring-mybatis.xml </parm-value> <lipter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <sureded-suported> true </async-sucuported> <Ing-param> <param-name> الترميز </param-name> <baram-value> utf-8 <Filter-Mapping> <filter-name> encodingfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-spring bearneder-> <cleder-class> org.springframework.web.context <StaNerer-Class> org.springframework.web.util.introspectorcleanuplistener </stanterer-class> </stanter> <!-servc servlet-> servlet> <sterlet-name> springmvc </servlet-name> <IRING-PARAM> <PARAM-NAME> CONTEXTCONFIGLOCATION </param-name> <param-value> classpath: spring-mvc.xml </parm-value> </IPAR-param> <load-on-startup> 1/servle-maptup> <Srevlet-Name> springmvc </servlet-name> <!-هنا يمكنك تكوين *.do ، المقابلة لعادة اللاحقة من الدعامات-> <url-pattern>/</url-pattern> </sectlet mapping> <-app-list> <list-file>/inidex.jsp </ribilel
أعلاه ، توليد الكود اكتمل.
يمكن تنزيل المشاريع: https://github.com/cjt321/mavenspirngmvcmybatis
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.