SSH2整合步驟

 

Struts2和Spring的整合:
1. 添加jar包(注意包衝突), 另外需要注意一定要加入struts2-spring-plugin.jar包
2. 添加各自的支持文件(struts.xml和applicationContext.xml)
3. 配置web.xml
   (1) 配置spring初始化所需要的啓動參數(可以使用通配符,如有多個文件可用,隔開)
    <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext.xml</param-value>
 </context-param>
   (2) 配置spring上下文監聽器(主要用於在啓動時產生WepApplicationContext對象)
    <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
   (3) 配置struts2的過濾器
  
4. 開發各層的實現代碼.
5. 在applicationContext.xml中配置各個bean, 需要注意的是action Bean的配置與其它Bean
  
        一樣.

6. 在struts.xml中配置Action, 其餘的與以前一樣,只需要將class的值設置成我們在spring中配置的action
   Bean的id即可。
  
  
 
Spring和Hibernate的整合:
1. 添加相應的支持jar包.
2. 添加相應的支持文件.
3. 在spring的配置文件中來配置Hibernate的SessionFactory對象,並將Hibernate的核心配置文件
        作爲其屬性的值。也可以不要hibernate的核心配置文件,所有的映射信息都配置到spring中,但這樣
        會加大編碼的難度,所以一般我們很少使用這種方式。
 <!-- 配置sessionFactory對象 -->
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <!-- 導入hibernate的核心配置文件  -->
  <property name="configLocation"
   value="classpath:hibernate.cfg.xml">
  </property>
 </bean>

4. 編寫數據訪問類 Dao, 要求該DAO直接或間接繼承自HibernateDaoSupport, 我們可以使用
       這個類中的hibernateTemplate這個屬性來進行數據的各種操作,這個模板對象會幫助我們
        完成哪些沒有技術含量的共有操作。

5. 配置我們的Dao,注意在配置的時候需要配置sessionFactory屬性.

6. 配置OSIV過濾器(解決session已關閉問題)

7. 通過配置聲明式事務來解決數據不能保存或更新的問題.
   (1) 配置事務管理器(由spring實現的一個事務管理器類,我們只需要配置即可),配置時一定
                   要爲其配置sessionFactory對象。
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory"></property>
 </bean>
                  
   (2) 配置事務增強(哪些方法採用何種事務策略,對保存和刪除、更新方法,一定要爲其使用事務)
   <tx:advice id="txAdvice" transaction-manager="txManager">
  <tx:attributes>
   <tx:method name="get*" read-only="true"/>
   <tx:method name="find*" read-only="false"/>
   <tx:method name="add*" propagation="REQUIRED"/>
   <tx:method name="update*" propagation="REQUIRED"/>
   <tx:method name="delete*" propagation="REQUIRED"/>
  </tx:attributes>
 </tx:advice>
    
      
    (3) 配置一個事務切面(在具體的哪些包中哪些類裏面的哪些方法中實施上面的增強策略)
    <aop:config>
  <aop:pointcut expression="execution(* com.accp.ssh.service..*.*(..))" id="pt"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>
 </aop:config>
   

 

 


         

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章