`

Struts1.x + Spring2.x+ Hibernate3.x 系统集成

阅读更多
SSH系统集成笔记:
  集成目标:
    1.SPRING 作为IOC容器管理struts的Action,hibernate的DAO、Session。
    2.使用SPRING的AOP概念管理hibernate事务。
    3.使用SPRING与其他系统框架集成组件。

步骤:
   1.引入Spring类库
   2.引入hibernate类库
   3.引入struts类库
      注意: 在引入以上类库时候,可以会出现类库包冲突的情况,以保持最新包为原则。
   4.加入spring的配置文件, applicationContext.xml
  5.加入hibernate配置文件,hibernate.cfg.xml
   6.加入struts配置文件,struts-config.xml
  7.集成hibernate事务管理,配置sessionfactory为org.springframework.orm.hibernate3.LocalSessionFactory,配置事务管理器为org.springframework.orm.hibernate3.HibernateTransactionManager,配置事务的传播特性,使用<tx:advice>元素,通过<tx:attributes>配置具体方法名的事务传播特性。使用spring的AOP作用与具体目标对象上<aop:advisor>;
   8.将DAO对象集成org.springframework.orm.hibernate3.support.HibernateDAOSupport.通过HibernateTemplate实现数据测CRUD。
   9.将hibernate的DAO对象注入到业务逻辑层,将业务逻辑层对象配置进IOC容器。
      至此:hibernate和spring已经集成完毕。需要注意,管理hibernate事务的sessionFactory和DAO实现的SessionFactory必须为同一SessionFactory。
   10.配置struts。
        配置web.xml,配置ActionServlet拦截所有strtus请求。
        新建struts的资源文件 resourceApplication.properties。
        配置struts-config.xml文件,将资源文件加入到struts-config.xml中。
   11.集成struts的Action配置到Spring的IOC容器。
        将所有的Action配置到spring的IOC配置文件中,通过name唯一标识,而不使用ID,name元素的内容与struts的action配置节的path一致。
        将struts配置文件中action节中type属性统一修改成org.springframework.web.struts.DelegatingActionProxy,通过其调用spring的beanfacotry创建action对象并将请求转发给目标aciton。
        将org.springframework.web.context.ContxtLoaderListener监听器配置到web.xml中,并配置contextConfigLocation 参数,用于注入所有的配置文件路径。

   12.配置spring对各个框架的集成。
         配置字符处理类。
         陪孩Hibernate的session管理类。

   13.其他:
      引入对应数据库的链接包。
      加入log4j.xml配置文件。

配置例子:
   web.xml中:

=====================================================
applicaton-commons.xml
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" >
<!-- 配置事务 -->
<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
<!-- 配置Hibernate SessionFactory -->
   <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />
   </bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
     <property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置事务的传播特性 -->
<tx:advice id="managerAdvice">
    <tx:attributes>
      <tx:method name="save*" propagation="REQUIRED"/>
      <tx:method name="update*" propagation="REQUIRED" />
      <tx:method name="delete*" propagation="REQUIRED" />
      <tx:method name="del*" propagation="REQUIRED" />
      <tx:method name="lenderBook" propagation="REQUIRED" />
      <tx:method name="returnBook" propagation="REQUIRED" />
      <tx:method name="*" read-only="true"/>
    </tx:attributes>
</tx:advice>
<!-- 配置spring AOP进行事务拦截处理 -->
<aop:config>
<!--
<aop:pointcut id="managerPointcut" expression="execution(* com.ebook.manager.*.*(..))"/>
  -->
<!-- -->
    <aop:pointcut id="managerPointcut" expression="execution(* com.ebook.dao.CommonDAOSupport.*(..))"/>
    
    
    <aop:advisor id="managerAdvisor"  pointcut-ref="managerPointcut" advice-ref="managerAdvice"/>
</aop:config>
</beans>
==========================================================
application-beans.xml
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" >
<!-- 由于DAO继承了HiberaneDAOSupport,所以需要注入SessionFactory对象,此SessionFactory就为ApplicationContext-commons.xml中的sessionFactory-->
   <bean id="bookDAO" class="com.ebook.dao.BookDAO">
          <property name="sessionFactory" ref="sessionFactory"  />
   </bean> 

  <bean id="cardDAO" class="com.ebook.dao.LenderCardDAO">
         <property name="sessionFactory" ref="sessionFactory"  />
  </bean>
 
   <bean id="lenderRecordDAO" class="com.ebook.dao.LenderRecordDAO">
         <property name="sessionFactory" ref="sessionFactory"  />
  </bean>
 
 
  <bean id="returnRecordDAO" class="com.ebook.dao.ReturnRecordDAO">
         <property name="sessionFactory" ref="sessionFactory"  />
  </bean>

<!-- 配置struts的Action ,注意用name属性唯一标识,注入业务逻辑对象。-->
<bean name="/login" class="com.demo.action.UserAction" >
   <property name="usermanager" ref="usermanager" />
</bean>
</beans>


=================================================================
hibernate.cfg.xml 此配置可以加入到spring的配置文件中。

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
   <session-factory>
       <property name="connection.url">jdbc:mysql://localhost:1433/ebook</property>
       <property name="connection.username">root</property>
       <property name="connection.password">123</property>
       <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
       <property name="dialect" >org.hibernate.dialect.MySQLDialect</property>
       <property name="show_sql">true</property>
       <property name="hbm2ddl"> true</property>
       <mapping resource="com/ebook/dao/Book.hbm.xml" />
       <mapping resource="com/ebook/dao/LenderCard.hbm.xml" />
       <mapping resource="com/ebook/dao/LenderRecord.hbm.xml" />
       <mapping resource="com/ebook/dao/ReturnRecord.hbm.xml" />
      
   </session-factory>
</hibernate-configuration>

==========================================================
web.xml

  <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath*:applicationContext-*.xml</param-value>
  </context-param>
  
   <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
  
  <filter>
    <filter-name>Spring character encoding filter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>GBK</param-value>
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>Spring character encoding filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
 
  <filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  </filter>
<filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

=============================================
struts-config.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="userinfo" type="com.demo.actionform.User"></form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
  
<action path="/login" type="org.springframework.web.struts.DelegatingActionProxy" name="userinfo"
scope="request">
<forward name="success" path="/success.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.demo.struts.ApplicationResources" />
</struts-config>

  

 
   
0
0
分享到:
评论

相关推荐

    Struts2.X+Hibernate3.X+Spring2.5 整合

    标题"Struts2.X+Hibernate3.X+Spring2.5 整合"指的是将这三个框架的特定版本(Struts2.X,Hibernate3.X,Spring2.5)集成到同一个项目中,实现高效的企业级应用开发。这种整合能够充分利用各个框架的优势,使开发者...

    struts2+spring+hibernate+ajax纳税服务.rar

    Struts2、Spring和Hibernate是Java企业级开发中常用的三个框架,它们构成了SSH(Struts2、Spring、Hibernate)框架体系,广泛应用于构建MVC(Model-View-Controller)架构的Web应用程序。Ajax(Asynchronous ...

    Struts1.3+Spring4.x+Hibernate4.x框架整合实现对书籍的增删改查(含分页)

    总结来说,"Struts1.3+Spring4.x+Hibernate4.x框架整合实现对书籍的增删改查(含分页)"项目展示了如何使用SSH框架来构建一个功能完善的书籍管理系统。Struts处理用户请求,Spring管理应用组件并提供事务支持,...

    基于Struts2+Spring+Hibernate+MySql的注册登录系统.zip

    Struts2、Spring、Hibernate和MySql这四个技术是Java Web开发中常用的一套经典组合,被称为SSH框架。这个注册登录系统就是利用这些技术构建的。下面将详细讲解这套组合的相关知识点。 首先,Struts2是一个强大的MVC...

    Struts1+Spring2+Hibernate2整合详细例子

    然而,随着技术的发展,Struts1已被Struts2取代,Spring也发展到了更高版本,而Hibernate则更新到了5.x。尽管如此,理解这种整合方式对于理解现代Java Web框架的工作原理仍然具有重要的参考价值。

    Struts1+Hibernate+Spring整合

    在Java Web开发领域,Struts1、Hibernate以及Spring这三个框架被广泛应用于构建企业级应用系统。Struts1作为MVC架构的一种实现,负责处理用户的请求并调度响应;Hibernate作为一个对象关系映射(ORM)框架,用于简化...

    基于Struts 2+Hibernate+Spring实现论坛系统

    Struts 2、Hibernate 和 Spring 是 Java Web 开发中的三个重要框架,它们组合起来可以构建高效、可维护的Web应用程序,尤其是对于复杂的企业级论坛系统。这个基于Struts 2+Hibernate+Spring实现的论坛系统,充分利用...

    struts2.1.8.1+hibernate3.5.2+spring3.0.0包整合之struts2.1.8.1

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC(Model-View-Controller)架构中的控制层,Hibernate专注于对象关系映射(ORM),而Spring则提供了全面的...

    struts2+hibernate+spring整合的管理系统

    1. 引入相关库:将Struts2、Hibernate和Spring的jar包引入项目。 2. 配置Struts2:配置struts.xml文件,定义Action及其结果页面。 3. 配置Hibernate:配置hibernate.cfg.xml文件,设置数据库连接信息,并创建实体类...

    JAVA WEB典型模块与项目实战大全.part2(第二卷)

    典型模型与项目实战大全&gt;&gt; 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 ... 第1篇 开发工具及框架概述 第1章 开发前奏 ...第27章 商业银行设备巡检系统(Struts 2.X+Spring+Hibernate)

    JAVA WEB典型模块与项目实战大全.part4

    典型模型与项目实战大全&gt;&gt; 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 由于上传限制 共分成4卷 请手动搜索其它3卷下载 ...第27章 商业银行设备巡检系统(Struts 2.X+Spring+Hibernate)

    JAVA WEB典型模块与项目实战大全.part3(第三卷)

    典型模型与项目实战大全&gt;&gt; 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 ... 第1篇 开发工具及框架概述 第1章 开发前奏 ...第27章 商业银行设备巡检系统(Struts 2.X+Spring+Hibernate)

    javaee Struts2+Hibernate+Spring学生成绩管理系统

    在"javaee Struts2+Hibernate+Spring学生成绩管理系统"中,这三种技术被集成在一起,形成了一个强大的开发框架,用于实现对学生成绩的有效管理。 Struts2是Apache软件基金会的一个开源项目,它是基于MVC(Model-...

    全套源码-论坛系统(Struts 2+Hibernate+Spring实现)

    【标题】:“全套源码-论坛系统(Struts 2+Hibernate+Spring实现)”揭示了一个基于Java技术栈开发的论坛系统,它整合了三个重要的框架:Struts 2、Hibernate和Spring。这个项目旨在提供一个完整的解决方案,帮助...

    sshdemo使用的包,struts2.5.30+spring5.2.3+hibernate5.4.11+mysql-jdbc+

    标题中的"sshdemo使用的包"指的是一种基于SSH(Struts2、Spring、Hibernate)框架的演示项目,其中还包含了MySQL和Oracle两种数据库的JDBC驱动,这是一套常见的Java Web开发技术栈。让我们详细了解一下这些技术: 1...

    在线音乐网站(Struts2+hibernate+spring)

    【标题】"在线音乐网站(Struts2+hibernate+spring)" 是一个基于Java技术栈构建的Web应用程序,旨在提供音乐流媒体服务。这个项目整合了三个关键的开源框架:Struts2、Hibernate和Spring,它们在Java Web开发中扮演...

    struts2.1.8.1+hibernate3.5.2+spring3.0.0包整合之hibernate3.5.2

    1. **配置环境**:确保安装了JDK,设置好环境变量,下载并导入Struts2、Hibernate和Spring的jar包到项目的类路径。 2. **配置Struts2**:创建struts.xml配置文件,定义Action、Result和拦截器栈。添加Struts2的过滤...

    struts2.1.8.1+hibernate3.5.2+spring3.0.0包整合之spring3.0.0

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自在Web应用程序的不同层面上发挥作用,共同构建出高效、可维护的系统。本整合主要关注Spring 3.0.0版本,它作为轻量级的IoC(Inversion of Control,...

    struts1+spring+hibernate集成jar包

    Struts1、Spring和Hibernate是Java Web开发中的三大框架,它们各自解决应用程序的不同问题,而SSH(Struts1 + Spring + Hibernate)则是这三者整合的解决方案,旨在提供一个高效、灵活且可扩展的开发环境。...

    Struts2+Spring+Hibernate集成开发环境的配置小例子

    1. **添加依赖**:在项目的pom.xml文件中,添加Struts2、Spring和Hibernate的相关依赖库。 2. **配置Struts2**:创建struts2的配置文件(struts.xml),定义Action类和结果类型。同时,在web.xml中配置Struts2的...

Global site tag (gtag.js) - Google Analytics