1. 程式人生 > >spring+hibernate+struts2整合方案(1)

spring+hibernate+struts2整合方案(1)

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已關閉問題)