كانت المشاريع المبكرة بسيطة نسبيًا ، ومعظمها تم التعامل معها مباشرة مع JSP و Servlet + JDBC. في وقت لاحق ، تم استخدام Struts1 (Struts2)+Spring+Hibernate لدفع تطوير المشروع بشكل صارم وفقًا لمفهوم الطبقات. هذه المرة ، تم استخدام Spring MVC لاستبدال الدعامات للتنمية.
MVC هو بالفعل جزء مهم للغاية من تطوير الويب الحديث. دعنا نقدم بناء بيئة التطوير من springmvc+spring3+hibernate4.
دعونا نلقي نظرة على بنية المشروع:
لن يتم عرض الرمز المحدد بعد الآن ، فهو يستغرق بشكل أساسي مسارًا عاديًا للغاية ، وهو بنية MVC-Servcie-Dao-Hibernate ، ويمكن تنزيل الكود المصدر ، بشكل رئيسي ، انظر إلى ملف التكوين. انظر تعليقات التفسير
web.xml
<؟ xmlns: web = "http://java.sun.com/xml/ns/javaee" XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id = "webapp_id" version = "2.5" <ishly-file> index.jsp </iship-file> </rip-file-list> <!-تكوين الربيع-> <context-param> <param-name> contextConfiglocation </param-name> <Param-value> classpath*: config/spring-*. <Caneerer-Class> org.springframework.web.context.contextloaderListener </stanterer-class> </leader> <!-configmvc-> <stervlet> <vervlet-name> springmvc </servlet-name> <Param-name> contextConfigLocation </param-name> <Param-value> classpath*: config/spring-servlet.xml </parm-value> </ith-param> <load-on-startup> 1 </odl-pattern> </servlet> </servlet-mapping> <!-تعيين مجموعة الأحرف-> <lipter> <filter-name> encodingFilter </filter-name> <filter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <Ing-param> </ith-param> <INIT-PARAM> <PARAM-NAME> FORCEENCODING </param-name> <param-value> true </parm-value> </ith-param> </filter> <filter-mapping> <filter-name> isodingfilter </filter-name> <filter-name> opensession </filter-name> <lipter-class> org.springframework.orm.hibernate4
الربيع servlet.xml
<؟ xmlns: p = "http://www.springframework.org/schema/p" Xmlns: XSI = "http://www.w3.org/2001/xmlschema-instance" http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/spring-context http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/Spring-Mvc-3 -> <!-معالجة طريقة التعليق التوضيحي-> <!-<bean/>-> <!-معالجة رسم خرائط فئة التعليقات التوضيحية-> <!-<///bean>-> <!-مخطط التعليقات التوضيحية المفتوحة 2-> <mvc: enoation-driven/> <!-الوصول إلى الموارد الثابتة ، الحل 1-> الموقع = "/js/" mapping = "/js/**"/> <!-الوصول الثابت للموارد ، المخطط 2-> <!-<mvc: default-servlet-sendler/>-> <!-عرض فئة التفسير-> <bean id = "viewResolver"> <property name = "precix ="/" <property name = "FASEIX" value = ". value = "40960"/> </ban> -> </bans>
الربيع----HIPRENTER.XML
<؟ xmlns: p = "http://www.springframework.org/schema/p" Xmlns: XSI = "http://www.w3.org/2001/xmlschema-instance" http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/spring-context http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ">! value = "com.mysql.jdbc.driver" /> <property name = "url" value = "jdbc: mysql: //127.0.0.0.1/springmvc id = "sessionfactory"> <property name = "dataSource" ref = "datasource"/> <property name = "hibernateProperties"> <bubs> <prop key = "hibernate.dialect"> org.hibernate.dialect.mysqldialect </prop> <propmerat key = "hibernate.show_sql"> true </prop> <prop key = "hibernate.format_sql"> true </prop> </prop> </property> <property name = "configlocations"> <list> <Sable> classpath*: config/hibernate.cfg.xml id = "TransactionManager"> <property name = "sessionfactory" ref = "sessionfactory"> </property> </bean> <!-فئة عامل المعاملات-> <bean id = "TransactionBese" lazy-init = "true" upplication = "true"> <property name = "TransactionManager key = "add*"> procfation_required ، -exception </prop> <prop key = "update*"> servation_required ، -exception </prop> <prop key = "insert*"> spection_required ، -exception </propification <propification <propification_ "insert*" key = "modify*"> propergation_required ، -exception </prop> <prop key = "delete*"> servation_required ، -exception </prop> <prop key = "del*"> spection_required ، -exception </rop> <prop key = "get*"
Spring-core.xml
<؟ xmlns: p = "http://www.springframework.org/schema/p" Xmlns: XSI = "http://www.w3.org/2001/xmlschema-instance" http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/spring-context http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ">! </beans>
Spring-User.xml
<؟ "org/springframework/web/context/web-inf/contextinclude.xml">]> <! </bean> <!-الأصل هو معاملات ، يشير إلى أن المعاملات مدعومة-> <bean id = "usermanager" parent = "transactionbese"> <property name = "target" ref = "usermanagerBase"> </pregark> </bans> </bans>
hibernate.cfg.xml
<! doctype hibernate-configuration public "-// hibernate/hibernate configuration dtd 3.0 // en" "http://www.hibernate.org/dtd/hibernate-configuration-3 </session-factory> </hibernate-configuration>
لنلقي نظرة على وحدة التحكم
حزمة com.jialin.controller ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد java.util.list ؛ استيراد javax.annotation.Resource ؛ استيراد javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpservletresponse ؛ استيراد org.springframework.stereotype.controller ؛ استيراد org.springframework.web.bind.annotation.requestmapping ؛ استيراد com.jianin.entity.user ؛ استيراد com.jianin.service.iusermanager ؛ controller // struts-like action @requestmapping ("/user") الفئة العامة USERCONTROLLER {resource (name = "usermanager") // احصل على معرف الفاصوليا في ملف تكوين الربيع كـ usermanager ، وحقن iusermanager usermanager الخاص ؛ requestmapping ("/adduser") // طلب تعيين عنوان عنوان URL ، على غرار سلسلة Adduser العامة التي تشبه STRUTS-MAPPING ADDUSER (مستخدم المستخدم) {if (usermanager.adduser (user)) {// إعادة توجيه "إعادة توجيه:/user/getalluser" ؛ } آخر {return "/fail" ؛ }} @requestmapping ("/updateUser") public string updateUser (مستخدم المستخدم ، httpservletrequest request) {if (usermanager.updateuser (user)) {user = usermanager.getOneuser (user) ؛ request.setattribute ("user" ، user) ؛ إرجاع "/useredit" ؛ } آخر {return "/fail" ؛ }} @requestmapping ("/deluser") public void deluser (مستخدم المستخدم ، httpservletresponse) {string result = "{/" result/":/" error/"}" ؛ if (usermanager.deluser (user)) {result = "{/" result/":/" success/"}" ؛ } printWriter out = null ؛ Response.setContentType ("application/json") ؛ جرب {out = reponse.getWriter () ؛ out.write (نتيجة) ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }} @requestmapping ("/toadduser") السلسلة العامة toadduser () {return "/userAdd" ؛ } @requestmapping ("/toupdateuser") السلسلة العامة toupdateuser (مستخدم المستخدم ، طلب httpservletrequest) {user user1 = usermanager.getOneuser (user) ؛ request.setAttribute ("user1" ، user1) ؛ إرجاع "/useredit" ؛ } @requestmapping ("/getAlluser") السلسلة العامة getAlluser (طلب httpservletRequest) {list userList = usermanager.getAlluser () ؛ request.setAttribute ("userlist" ، userlist) ؛ العودة "/usermain" ؛ }}تنزيل رمز المصدر ...
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.