Ранние проекты были относительно простыми, в основном непосредственно имели дело с JSP, Servlet + JDBC. Позже, Struts1 (Struts2)+Spring+Hibernate использовали для строгого развития проектов в соответствии с концепцией наслоения. На этот раз Spring MVC использовался для замены стойки для разработки.
MVC уже является очень важной частью современной веб -разработки. Давайте представим конструкцию среды разработки SpringMVC+Spring3+Hibernate4.
Давайте посмотрим на структуру проекта:
Конкретный код больше не будет продемонстрирован, в основном он занимает очень обычный маршрут, структуру MVC-Servcie-DAO-гибернат, исходный код можно загрузить, в основном посмотрите на файл конфигурации. Смотрите комментарии для объяснения
web.xml
<? xml version = "1.0" Encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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"> <Slace-Name> springmvc </wyple-name-frestiist> ". <welcelyfile> index.jsp </werveding-file> </werveding-file-list> <!-Настройка Spring-> <context-param> <param-name> contextconfiglocation </param-name> <value> classpath*: config/spring-*. xml </param-value> </context-param> <derlocer> <Learser-class> org.springframework.web.context.contextloaderListener </stirlicer> </sluster> <!-Configure Springmvc-> <servlet> <servlet-name> springmvc </servlet-name> <serlet-class> org.spramework.web.sispatererverververververververververververvelocerer> <Itrg.spramework.web.siservelcerervervelcererservaler> <Itrg.spramework. <param-name> contextConfiglocation </param-name> <value> classpath*: config/spring-servlet.xml </param-value> </init-param> <dute-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-name> springmvc </servlet> <urll> </url-p-p-p-p-patern> </servlet-mapping> <!-- Set character set--> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name> forceEncoding </param-name> <param-value> true </param-value> </init-param> </filter> <Filter-Mapping> <Filter-name> eNcodingFilter </filter-name> <url-pattern>/*</url-patern> </filter-mapping> <url-pattern>/*</url-pattern> </filter-mapping> <url-pattern>/*</url-pattern> </filter-mappaping>-<url-pattern>/*</url-pattern> </filter-name> <filter-name>openSession</filter-name> <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>openSession</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
Spring-servlet.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://www.springframework.org/schema/context" xmlns: p = "http://www.springframework.org/schema/p" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: xsi = "http://www.w3.shema11111111. xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.spramework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xm. Пакет-> <Контекст: Component Scan Base-package = "com.jialin" /> <!-Открытая схема аннотации 1-> <!-обработка метода аннотации-> <!-<bean />-> <!-Аннотация класса. Обработка картирования класса-> <!-< /bean> <! -> <mvc: resources location = "/img/" mapping = "/img/**"/> <mvc: resources location = "/js/" mapping = "/js/**"/> <!-Статический доступ к ресурсам, схема 2-> <!-<mvc: default-servlet-handler/> <! name = "prefix" value = "/"> </property> <!-может быть пустым, удобным для реализации логики класса интерпретации представления на основе вашего расширения-> <name = "Суффикс" value = ". jsp"> </properation> </bean> <!-upload file bean-> <!-<bean id = "multipresolver"> <property name name = "ufault kvalling =" <имя свойства = "maxuploadSize" value = "10485760000" /> <name = "maxinMemorySize" value = "40960" /> < /bean> -> < /beans>
Spring-Hibernate.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://www.springframework.org/schema/context" xmlns: p = "http://www.springframework.org/schema/p" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: xsi = "http://www.w3.shema11111111. xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.spramework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- Configure Data Source-> <Bean id = "dataSource"> <name = "driverClassname" value = "com.mysql.jdbc.driver" /> <name = "url" value = "jdbc: mysql: //127.0.0.1/springmvc" /> <proport name = "username" = "root" /root " /" root " /" root " /" root " /" root " /" root " /" root " /" root " /" root " /" root " /" root " /" root " /" root ". value="123456" /> </bean> <!-- Configure hibernate SessionFactory--> <bean id="sessionFactory" > <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key = "hibernate.hbm2ddl.auto"> update </prop> <prop key = "hibernate.show_sql"> true </prop> <prop key = "hibernate.format_sql"> true </prop> </prop> </property> <property name = "configlocation ClassPath*: config/hibernate/hibernate.cfg.xml </value> </list> </property> </bean> <!-Manager транзакции-> <bean id = "transactionManager"> <name = "SessionFactory" ref = "SessionFactory"> </property> </bean> <!-Агент Transaction-> <bean id = "rainit" "/property> </bean> <!-транзакция-> <bean id =" "/property> </bean> <! Abstract = "true"> <name = "transactionManager" ref = "transactionManager"> </property> <name = "transactionAttributes"> <props> <prop key = "add*"> propagation_required, -exception </prop> <prop key = " key = "insert*"> opragation_required, -exception </prop> <prop key = "insert*"> opragation_required, -exception </prop> <prop key = "modify*"> propagation_required, -exception </prop> <prop key = "modify*"> propagation_required, -exception </prop> <prop> key = "delete*"> opragation_required, -exception </prop> <prop key = "del*"> propagation_required, -exception </prop> <prop key = "get*"> propagation_never </prop> </props> </propety> </bean> </beans>
Spring-Core.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://www.springframework.org/schema/context" xmlns: p = "http://www.springframework.org/schema/p" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: xsi = "http://www.w3.shema11111111. xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.spramework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xmatury! Файлы, которые могут быть множественными-> <import resource = "classpath*: config/spring/spring-user.xml"/> </beans>
Spring-user.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Beans public "-// Spring // dtd bean 2.0 // en" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" [! "org/springframework/web/context/WEB-INF/contextInclude.xml"> ]> <beans> <!-- Spring Bean --> <bean id="userDao"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="userManagerBase"> <property name="userDao" ref="userDao"></property> </bean> <!-родитель-это транзакция, что указывает на то, что транзакции поддерживаются-> <bean id = "user manager" parent = "trancectionbese"> <name = "target" ref = "usermanagerbase"> </properation> </bean> </beans>
hibernate.cfg.xml
<! Doctype hibernate-configuration public "-// hibernate/hibernate configuration dtd 3.0 // en" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session factory> <!-Введение/вводка-MAPPAPING-MAPPAPING-MAPPAPING-MAPPAPING-MAPPAPING-MAPPAPING-MAPPAPING> <! </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; Import org.springframework.sterotype.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") // Получить идентификатор бобов в файл конфигурации весны в качестве пользовательского управляющего и Inject Private IuserManager Usermaner; @Requestmapping ("/adduser") // С отображение адреса URL-адреса запроса, аналогично Struts-подобным MAPPING MAPPING STRING ADDUSER (пользователь пользователь) {if (UserManager.Adduser (user)) {// return return "redirect:/user/getalluser"; } else {return "/fail"; }} @RequestMapping ("/updateUser") public String UpdateUser (пользователь пользователя, httpservletrequest) {if (usermanager.updateuser (user)) {user = usermanager.getoneuser (user); request.setattribute ("user", user); вернуть "/userEdit"; } else {return "/fail"; }} @Requestmapping ("/deluser") public void deluser (пользователь пользователь, httpservletresponse response) {string result = "{/" result/":/" error/"}"; if (usermanager.deluser (user)) {result = "{/" result/":/" success/"}"; } PrintWriter Out = null; response.setContentType ("Application/json"); try {out = response.getWriter (); out.write (результат); } catch (ioException e) {e.printstackTrace (); }} @Requestmapping ("/toadduser") public String toadduser () {return "/userAdd"; } @RequestMapping ("/toupdateUser") public String toupdateUser (пользователь пользователя, httpservlectrequest) {user user1 = usermanager.getoneuser (user); request.setattribute ("user1", user1); вернуть "/userEdit"; } @RequestMapping ("/getalluser") public String getalluser (httpservletrequest) {list userlist = usermanager.getalluser (); request.setattribute ("userlist", userlist); вернуть "/usermain"; }}Скачать исходный код ...
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.