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管理。

你可能感兴趣的:(eclipse,spring,struts,ssh,hiberbate)