SpringAOP+SpringIoc+hibernate3+SpringMVC构建步骤

SpringAOP+SpringIoc+hibernate3+SpringMVC构建步骤

第一步:配置web.xml:

 1 <? xml version="1.0" encoding="GBK" ?>
 2 <! DOCTYPE web-app
 3     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 4     "http://java.sun.com/dtd/web-app_2_3.dtd" >
 5 < web-app >
 6   < display-name > displayName </ display-name >
 7   < description > 采用Spring集成Hibernate3,SpringMVC </ description >
 8  
 9   < context-param >
10    < param-name > webAppRootKey </ param-name >
11    < param-value > springMVC.root </ param-value >
12   </ context-param >
13  
14 <!-- 初始项目的日志 -->  
15 < context-param >
16    < param-name > log4jConfigLocation </ param-name >
17    < param-value > /WEB-INF/log4j.properties </ param-value >
18   </ context-param >
19  
20   <!-- 加载spring的配置文件,最好将数据访问与spring 根上下文配置文件分开便于管理 -->  
21 < context-param >
22    < param-name > contextConfigLocation </ param-name >
23    < param-value > /WEB-INF/applicationContext.xml   /WEB-INF/dataAccessContext-hibernate.xml </ param-value >
24   </ context-param >
25  
26 <!-- 默认加载spring的更目录配置文件,通常是applicationContext.xml ,初始化beanFactory,使用在Jsp/Servlet2.4以上的web container中 -->  
27 < servlet >
28    < servlet-name > context </ servlet-name >
29    < servlet-class > org.springframework.web.context.ContextLoaderServlet </ servlet-class >
30    < load-on-startup > 1 </ load-on-startup >
31   </ servlet >  
32
33   <!--  使用在Jsp/Servlet2.3以下中,加载Spring的根目录上下文,作用同上,只是使用场合不同
34  <listener>
35   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
36  </listener>
37   -->
38   
39 <!-- 加载你的工程,默认读取yourWebServer-servlet.xml,这里是springMVC-servlet.xml -->  
40 < servlet >
41    < servlet-name > springMVC </ servlet-name >
42    < servlet-class >
43    org.springframework.web.servlet.DispatcherServlet
44    </ servlet-class >
45    < load-on-startup > 2 </ load-on-startup >
46   </ servlet >
47  
48   <!--  servlet>
49   <servlet-name>FreeMarker</servlet-name>
50   <servlet-class>
51    org.springframework.web.servlet.DispatcherServlet
52   </servlet-class>
53   <load-on-startup>3</load-on-startup>
54  </servlet -->
55  
56   < servlet-mapping >
57    < servlet-name > springMVC </ servlet-name >
58    < url-pattern > *.action </ url-pattern >
59   </ servlet-mapping >
60  
61   <!--  servlet-mapping>
62   <servlet-name>FreeMarker</servlet-name>
63   <url-pattern>*.ftl</url-pattern>
64  </servlet-mapping -->
65  
66   < session-config >
67    < session-timeout > 10 </ session-timeout >
68   </ session-config >
69  
70   < welcome-file-list >
71    < welcome-file > index.jsp </ welcome-file >
72   </ welcome-file-list >
73  
74   < error-page >
75    < exception-type > java.lang.Exception </ exception-type >
76    < location > /WEB-INF/view/jsp/uncaughtException.jsp </ location >
77   </ error-page >  
78
79 </ web-app >
80
81


第二步:XML :

applicationContext.xml 

 1 <? xml version="1.0" encoding="UTF-8" ?>
 2 <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >  
 3
 4 < beans >
 5   <!--  
 6   ============================================================
 7   /WEB-INF/applicationContext.xml        
 8   ============================================================
 9   -->
10   < bean  id ="propertyConfigurer"  class ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
11    < property  name ="locations" >
12     < list >
13      < value > WEB-INF/jdbc.properties </ value >
14     </ list >
15    </ property >
16   </ bean >  
17
18   < bean  id ="passytTarget"  class ="com.passyt.model.logic.PassytImpl" >
19    < property  name ="adminPersonDao" >
20     < ref  bean ="adminPersonDao"   />
21    </ property >
22    < property  name ="employeeDao" >
23     < ref  bean ="employeeDao"   />
24    </ property >
25    < property  name ="employeeLevelDao" >
26     < ref  bean ="employeeLevelDao"   />
27    </ property >
28    < property  name ="laborageDetailDao" >
29     < ref  bean ="laborageDetailDao"   />
30    </ property >
31   </ bean >  
32
33   < bean  id ="passyt"  class ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >
34    < property  name ="transactionManager" >
35     < ref  bean ="transactionManager"   />
36    </ property >
37    < property  name ="target" >
38     < ref  bean ="passytTarget"   />
39    </ property >
40    < property  name ="transactionAttributes" >
41     < props >
42      < prop  key ="save*" > PROPAGATION_REQUIRED </ prop >
43      < prop  key ="delete*" > PROPAGATION_REQUIRED </ prop >
44      < prop  key ="update*" > PROPAGATION_REQUIRED </ prop >
45      < prop  key ="get*" > PROPAGATION_REQUIRED,readOnly </ prop >
46     </ props >
47    </ property >
48   </ bean >
49 </ beans >
50
51


dataAccessContext-hibernate.xml

 1 <? xml version="1.0" encoding="UTF-8" ?>
 2 <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
 3 < beans >
 4   <!--  ========================= RESOURCE DEFINITIONS =========================  -->
 5  
 6   < bean  id ="dataSource"  class ="org.apache.commons.dbcp.BasicDataSource"  destroy-method ="close" >
 7    < property  name ="driverClassName" >
 8     < value > ${jdbc.driverClassName} </ value >
 9    </ property >
10    < property  name ="url" >
11     < value > ${jdbc.url} </ value >
12    </ property >
13    < property  name ="username" >
14     < value > ${jdbc.username} </ value >
15    </ property >
16    < property  name ="password" >
17     < value > ${jdbc.password} </ value >
18    </ property >
19   </ bean >  
20
21   < bean  id ="sessionFactory"  class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
22    < property  name ="dataSource"  ref ="dataSource" />
23    < property  name ="mappingResources" >
24     < list >
25      < value > com/passyt/model/AdminPerson.hbm.xml </ value >
26      < value > com/passyt/model/Employee.hbm.xml </ value >
27      < value > com/passyt/model/EmployeeLevel.hbm.xml </ value >
28      < value > com/passyt/model/LaborageDetail.hbm.xml </ value >
29     </ list >
30    </ property >
31    < property  name ="hibernateProperties" >
32     < props >
33      <!--  org.hibernate.dialect.HSQLDialect -->
34      < prop  key ="hibernate.dialect" > ${hibernate.dialect} </ prop >
35      < prop  key ="hibernate.show_sql" > true </ prop >
36      < prop  key ="hibernate.generate_statistics" > true </ prop >
37     </ props >
38    </ property >
39    < property  name ="eventListeners" >
40     < map >
41      < entry  key ="merge" >
42       < bean  class ="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" />
43      </ entry >
44     </ map >
45    </ property >
46   </ bean >
47  
48   < bean  id ="transactionManager"  class ="org.springframework.orm.hibernate3.HibernateTransactionManager" >
49    < property  name ="sessionFactory" >
50     < ref  local ="sessionFactory"   />
51    </ property >
52   </ bean >
53  
54   <!--  Hibernate 3.0's JMX statistics service  -->
55   <!--  Implements the StatisticsServiceMBean management interface  -->
56   <!--  bean name="springMVC:type=HibernateStatistics" class="org.hibernate.jmx.StatisticsService">
57   <property name="sessionFactory" ref="sessionFactory"/>
58  </bean -->
59  
60   <!--  ========================= DAO DEFINITIONS: IBATIS IMPLEMENTATIONS =========================  -->  
61
62   < bean  id ="adminPersonDao"  class ="com.passyt.model.dao.hibernate.HibernaeAdminPersonDao" >
63    < property  name ="sessionFactory" >
64     < ref  bean ="sessionFactory"   />
65    </ property >
66   </ bean >  
67
68   < bean  id ="employeeDao"  class ="com.passyt.model.dao.hibernate.HibernateEmployeeDao" >
69    < property  name ="sessionFactory" >
70     < ref  bean ="sessionFactory"   />
71    </ property >
72   </ bean >
73  
74   < bean  id ="employeeLevelDao"  class ="com.passyt.model.dao.hibernate.HibernateEmployeeLevelDao" >
75    < property  name ="sessionFactory" >
76     < ref  bean ="sessionFactory"   />
77    </ property >
78   </ bean >
79  
80   < bean  id ="laborageDetailDao"  class ="com.passyt.model.dao.hibernate.HibernateLaborageDetailDao" >
81    < property  name ="sessionFactory" >
82     < ref  bean ="sessionFactory"   />
83    </ property >
84   </ bean >  
85 </ beans >
86
87


springMVC-servlet.xml:

  1 <? xml version="1.0" encoding="UTF-8" ?>
  2 <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
  3
  4 <!--
  5  - DispatcherServlet application context for the Spring web MVC
  6  - implementation of JPetStore's web tier.
  7 -->
  8 < beans >  
  9
 10   <!--  ========================= MESSAGE SOURCE DEFINITION =========================  -->  
 11
 12   <!--
 13   - Message source for this context, loaded from localized "messages_xx" files.
 14   - Could also reside in the root application context, as it is generic,
 15   - but is currently just used within PetClinic's web tier.
 16   -->
 17   < bean  id ="messageSource"  class ="org.springframework.context.support.ResourceBundleMessageSource" >
 18    < property  name ="basename"  value ="messages"   />
 19   </ bean >  
 20
 21   <!--  ========================= MAPPING DEFINITIONS =========================  -->  
 22
 23   <!--
 24   - This bean provides explicit View mappings in a resource bundle instead of the
 25   - default InternalResourceViewResolver. It fetches the view mappings from
 26   - localized "views_xx" classpath files, i.e. "/WEB-INF/classes/views.properties"
 27   - or "/WEB-INF/classes/views_de.properties".
 28   -
 29   - Symbolic view names returned by Controllers will be resolved by this bean
 30   - using the respective properties file, which defines arbitrary mappings between
 31   - view names and resources.
 32   -->
 33   < bean  id ="viewResolver"  class ="org.springframework.web.servlet.view.ResourceBundleViewResolver" >
 34    < property  name ="basename"  value ="views"   />
 35   </ bean >  
 36
 37   < bean  id ="exceptionResolver"  class ="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" >
 38    < property  name ="exceptionMappings" >
 39     < props >
 40      < prop  key ="org.springframework.dao.DataAccessException" > dataAccessFailure </ prop >
 41      < prop  key ="org.springframework.transaction.TransactionException" > dataAccessFailure </ prop >
 42     </ props >
 43    </ property >
 44   </ bean >  
 45
 46   < bean  id ="urlMapping"  class ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
 47    < property  name ="mappings" >
 48     < props >
 49      < prop  key ="/login.action" > login </ prop >
 50      < prop  key ="/forwardTop.action" > passytController </ prop >
 51      < prop  key ="/forwardMain.action" > passytController </ prop >
 52      < prop  key ="/forwardMbot.action" > passytController </ prop >
 53      < prop  key ="/getListOfEmployeeLevel.action" > passytController </ prop >
 54      < prop  key ="/addEmployeeLevel.action" > addEmployeeLevel </ prop >
 55      < prop  key ="/test.action" > testAction </ prop >
 56     </ props >
 57    </ property >
 58   </ bean >  
 59
 60   <!--  ========================= CONTROLLER DEFINITIONS =========================  -->
 61  
 62   < bean  id ="passytController"  class ="com.passyt.web.SpringMVC.PassytController" >
 63    < property  name ="methodNameResolver"  ref ="passytControllerResolver" />
 64    < property  name ="passytFacde"  ref ="passyt" />
 65   </ bean >
 66  
 67   < bean  id ="passytControllerResolver"  class ="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver" >
 68    < property  name ="mappings" >
 69    < props >
 70     < prop  key ="/forwardTop.action" > forwardTop </ prop >
 71     < prop  key ="/forwardMain.action" > forwardMain </ prop >
 72     < prop  key ="/forwardMbot.action" > forwardMbot </ prop >
 73     < prop  key ="/getListOfEmployeeLevel.action" > getAllEmployeeLevels </ prop >
 74    </ props >
 75    </ property >
 76   </ bean >
 77  
 78   < bean  id ="testAction"  class ="com.passyt.web.SpringMVC.TestAction" >
 79    < property  name ="formView"  value ="testView" ></ property >
 80    < property  name ="successView"  value ="testView" ></ property >
 81   </ bean >
 82  
 83   < bean  id ="login"  class ="com.passyt.web.SpringMVC.LoginAction" >
 84    < property  name ="passytFacde"  ref ="passyt" />
 85    < property  name ="formView"  value ="loginForm" />
 86    < property  name ="successView"  value ="loginRedirect" />
 87    < property  name ="failView"  value ="failRedirect" />
 88    < property  name ="validator"  ref ="loginValidator" />
 89   </ bean >
 90  
 91   < bean  id ="loginValidator"  class ="com.passyt.model.logic.Validator.LoginValidator" />
 92  
 93   < bean  id ="addEmployeeLevel"  class ="com.passyt.web.SpringMVC.AddEmployeeLevelAction" >
 94    < property  name ="passytFacde"  ref ="passyt" ></ property >
 95    < property  name ="successView"  value ="successRedirect" ></ property >
 96    < property  name ="failView"  value ="failRedirect" />
 97    < property  name ="formView"  value ="addEmployeeLevelForm" ></ property >
 98   </ bean >  
 99 </ beans >
100
101


 

 第三步:properties:
views.properties

 1 failRedirect.(class) = org.springframework.web.servlet.view.JstlView
 2 failRedirect.url = /WEB-INF/jsp/error.jsp 
 3
 4 successRedirect.(class) = org.springframework.web.servlet.view.JstlView
 5 successRedirect.url = /WEB-INF/jsp/success.jsp 
 6
 7 testView.(class) = org.springframework.web.servlet.view.JstlView
 8 testView.url = /WEB-INF/jsp/testAction.jsp 
 9
10 loginForm.(class) = org.springframework.web.servlet.view.JstlView
11 loginForm.url = /WEB-INF/jsp/login.jsp 
12
13 loginRedirect.(class) = org.springframework.web.servlet.view.JstlView
14 loginRedirect.url = /WEB-INF/jsp/index.jsp 
15
16 topView.(class) = org.springframework.web.servlet.view.JstlView
17 topView.url = /WEB-INF/jsp/top.jsp 
18
19 mainView.(class) = org.springframework.web.servlet.view.JstlView
20 mainView.url = /WEB-INF/jsp/main.jsp 
21
22 mbotView.(class) = org.springframework.web.servlet.view.JstlView
23 mbotView.url = /WEB-INF/jsp/mbot.jsp 
24
25 addEmployeeLevelForm.(class) = org.springframework.web.servlet.view.JstlView
26 addEmployeeLevelForm.url = /WEB-INF/jsp/addEmployeeLevel.jsp 
27
28 listOfEmployeeLevelView.(class) = org.springframework.web.servlet.view.JstlView
29 listOfEmployeeLevelView.url = /WEB-INF/jsp/listOfEmployeeLevel.jsp 
30
31 dataAccessFailure.(class) = org.springframework.web.servlet.view.JstlView
32 dataAccessFailure.url = /WEB-INF/jsp/dataAccessFailure.jsp
33
34


第四步:java pojo:
model:pojo
dao:interface
hibernateDao :extendes HibernateDaoSupport implements dao
facade:暴露所有的dao中的方法
imlpemention:合成所有的hibernateDao,并implements facade
第四步:完成jsp和对应的action并配置到springMVC-servlet.xml中

你可能感兴趣的:(SpringAOP+SpringIoc+hibernate3+SpringMVC构建步骤)