Spring+Hibernate+Struts整合文檔(SSH)

一、Spring+Struts2整合:

1、spring配置在web.xml文件中的上下文監聽器:

  1. <listener>   
  2. <listener-class>org.springframwork.web.content.ContextLoaderListener</listener-class>   
  3. </listener>   
  4.  
  5. <context-param>   
  6. <param-name>contextConfigLocation</param-name>   
  7. <param-value>/WEB-INF/applicationContext*.xml</param-value>   
  8. </context-param>  

2、struts2配置在web.xml文件中的過濾器:

  1. <filter>   
  2. <filter-name>struts2</filter-name>   
  3. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>   
  4. </filter>   
  5.    
  6. <filter-mapping>   
  7. <filter-name>struts2</filter-name>   
  8. <url-patter>/*</url-patter>   
  9. </filter-mapping> 

3、設置struts.xml文件,就可以使用spring的IOC來管理struts的Action:
默認的的就是spring,可以不寫

  1. <content name=“struts.objectFactory” value=“spring” >    

4、第三步設置後,以後在struts.xml 文件中配置一個action時,它的class就不是一個類了,而是在applicationContext.xml文件中定義過的類的ID,在struts.xml文件中就只需要引用定義好的類的id 就可以了。
     特別要注意的一個問題:action是一個請求就是一個action對象,而在spring中則不是的,它是自動分配類的實例的,是使用的單態模式來生 產類的實例的,不符合action,因此在applicationContext.xml文件中定義每個action時,都要在類後加上:
     scope=“prototype” 屬性

二、Spring+Hibernate整合:

      Spring整合Hibernate,是做了一個很大的調整的,因爲spring可以把管理Hibernate的工作都做了,以前的hibernate.cfg.xml文件都去掉了,而將這些內容都交給了spring來管理了。

1、 applicationContext.xml文件中應該配置如下內容:

  1. //配置數據連接類   
  2. <bean id=“dataSource” lass=“org.apache.commons.dbcp.BasicDataSource”>   
  3. <property name=“driverClassName” value=“org.gjt.mm.mysql.Driver”></property>   
  4. <property name=“url” value=“jdbc:mysql://localhost:3306/test”></property>   
  5. <property name=“username” value=“root”></property>   
  6. <property name=“password” value=“root”></property>   
  7. </bean>   
  8.    
  9. //配置session工廠類   
  10. <bean id=“sessionFactory” class=“org.springframework.orm.hibernate3.LocalSessionFactoryBean”>   
  11. <property name=“dataSource”>   
  12. <ref bean=“dataSource” />   
  13. </property>   
  14. <property name=“hibernateProperties”>   
  15. <props>
  16. <prop key=“hibernate.dialect”>org.hibernate.dialect.MySQLDialect</prop>   
  17. <prop key=“hibernate.show_sql”>true</prop>   
  18. </props>
  19. </property>   
  20. <property name=“mappingResources”>   
  21. <value>com/hejianjiao/vo/Person.hbm.xml</value>   
  22. </property>  
  23. </bean>  

2、可以使用spring中的HibernateDAOSupport與HibernateTemplate類來進行數據持久化操作:
A、HibernateDAOSupport類中定義了對session、sessionFactory的操作方法getHibernateTemplate方法來獲得一個HibernateTemplate實例;
B、HibernateTemplate類中定義了對數據持久化的各種封裝的方法,我們可以用它來對數據進行操作。
因此在使用時,我們可以繼承HibernateDAOSupport類,然後實例化HibernateTemplate類來進行數據持久化。

三、三者組合開發:

     一般在組合開發時,沒有什麼難的,只要把上面兩步做好就可以是三個組合開發了。
對於進行組合開發時,一般使用的系統架構:
1、 先從最底層開發,先開發POJO類,和Hibernate映射文件。它相當於系統的數據庫層。
2、再開發DAO層,它是對於數據進行持久化的一層,專門處理各種數據增、刪、改、查的功能。並且使用DAO工廠模式,以保證和上層沒有任何的聯繫,並且可以方便於類與接口的擴展。
3、第三是開發manager層,它相當於軟件的業務邏輯層,即專門處理各種業務邏輯。實現系統的業務處理功能。並且它隔離事務,使與下層的數據持久和上層的數據操作沒有任何的聯繫。
4、 Action層,也即軟件的表示層,處理action的接收與回覆。各action由spring管理。

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