一、Spring+Struts2整合:
1、spring配置在web.xml文件中的上下文監聽器:
- <listener>
- <listener-class>org.springframwork.web.content.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext*.xml</param-value>
- </context-param>
2、struts2配置在web.xml文件中的過濾器:
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-patter>/*</url-patter>
- </filter-mapping>
3、設置struts.xml文件,就可以使用spring的IOC來管理struts的Action:
默認的的就是spring,可以不寫
- <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文件中應該配置如下內容:
- //配置數據連接類
- <bean id=“dataSource” lass=“org.apache.commons.dbcp.BasicDataSource”>
- <property name=“driverClassName” value=“org.gjt.mm.mysql.Driver”></property>
- <property name=“url” value=“jdbc:mysql://localhost:3306/test”></property>
- <property name=“username” value=“root”></property>
- <property name=“password” value=“root”></property>
- </bean>
- //配置session工廠類
- <bean id=“sessionFactory” class=“org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
- <property name=“dataSource”>
- <ref bean=“dataSource” />
- </property>
- <property name=“hibernateProperties”>
- <props>
- <prop key=“hibernate.dialect”>org.hibernate.dialect.MySQLDialect</prop>
- <prop key=“hibernate.show_sql”>true</prop>
- </props>
- </property>
- <property name=“mappingResources”>
- <value>com/hejianjiao/vo/Person.hbm.xml</value>
- </property>
- </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管理。