`
sony-soft
  • 浏览: 1105407 次
文章分类
社区版块
存档分类
最新评论

Struts 2, spring 2, hibernate 的整合

 
阅读更多

一.struts 2 与 spring2

struts2 本身就采用了类似于spring的IOC容器机制,可以利用struts2官方提供的插件struts2-spring-plugin-2.0.11.1.jar,直接与spring进行整合,配置文件中只需要设置
struts.objectFactory=spring
这样,就将struts2的对象管理交给了spring2的IOC容器。
在struts.xml中配置的action
<package name="maintaince" extends="struts-default">
<action name="serverInfoList" class="serverInfoService" method="getAllServersInfo">
<result name="list">/jsp/server_info/server_info_list.jsp</result>
</action>

在spring的配置文件中配置的bean
<bean id="serverInfoService" class="com.wod.service.impl.ServerInfoServiceImpl">
<property name="serverInfoDao" ref="serverInfoDao"/>
<property name="sib" ref="serverInfoBean"/>
</bean>
可以看出,struts2可以直接只用在spring2中配置的bean,引用过来作为action。
这样struts2就可以跑在spring2里面了.

另外,在web.xml中还有这些内容:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:properties/work-assistant*.xml</param-value>
</context-param>
加载spring的配置文件
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
设置spring的context listener
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
设置struts2的dispatcher。

二.hibernate3 与 spring2

spring 与 hibernate结合的时候,配置文件修改比较多。首先是hibernate的自身的配置被集成到了spring的配置文件中了.

1.配置datasource:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${hibernate.connection.driver_class}"
p:url="${hibernate.connection.url}"
p:username="${hibernate.connection.username}"
p:password="${hibernate.connection.password}"/>
2.配置sessionFactory
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" scope="prototype">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses"><!-- or use <property name="annotatedPackages"> -->
<list>
<value>com.wod.bean.Application</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.generate_statistics">${hibernate.generate_statistics}</prop>
</props>
</property>
<property name="eventListeners">
<map>
<entry key="merge">
<bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/>
</entry>
</map>
</property>
</bean>
这两个bean是spring结合hibernate的最主要的两个bean.
当这两个bean设置好了之后,就可以直接使用spring提供的”HibernateDaoSupport” ,直接使用封装好的hibernate特性,非常方便.
<bean id="serverInfoDao" class="com.wod.db.hibernate.ServerInfoDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
初始化一个DAO.
public List<ServerInfoBean> getAllServersInfo() {
List<ServerInfoBean> find = getHibernateTemplate().loadAll(ServerInfoBean.class);
return find;
}
直接调用getHibernateTemplate()访问数据库。
三.Spring 事务的设置

1.设置transactionManager
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory"/>
2.设置advice
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="find*" read-only="true"/>
<tx:method name="get*" read-only="true"/>
<tx:method name="list*" read-only="true"/>
<tx:method name="*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
3.接下来设置AOP
<aop:config>
<aop:pointcut id="businessService" expression="execution(* com.hisoft.db.hibernate.impl.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="businessService" />
<aop:aspect id="businessAspect" ref="AOPTest">
<aop:before pointcut-ref="businessService" method="before"/>
<aop:after-returning pointcut-ref="businessService" method="after"/>
</aop:aspect>
</aop:config>
这个的意思是说,当执行到com.hisoft.db.hibernate.impl这个包下面的任何类的任何方法,而且不管参数是什么,也就是说这个包下面的所有方法调用了,都要接受前面的transactionManager的管理。

4.AOP设置
<bean id="AOPTest" class="com.wod.common.LogHandler.AOPTest"/>
<aop:config>
<aop:pointcut id="businessService" expression="execution(* com.hisoft.db.hibernate.impl.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="businessService" />
<aop:aspect id="businessAspect" ref="AOPTest">
<aop:before pointcut-ref="businessService" method="before"/>
<aop:after-returning pointcut-ref="businessService" method="after"/>
</aop:aspect>
</aop:config>

定义一个切面,叫做businessAspect,引用的是我前面定义的一个叫做AOPTest的类,然后下面的两句话:
<aop:before pointcut-ref="businessService" method="before"/>
<aop:after-returning pointcut-ref="businessService" method="after"/>
aop:before 指的是在调用目标方法之前要干点事情,pointcut-ref="businessService"就是目标的方法,在调用匹配这个pointcut 的方法之前,会调用 method中定义的那个方法。

分享到:
评论

相关推荐

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    struts2+spring+hibernate整合小案例

    这个"struts2+spring+hibernate整合小案例"是一个用于教学和实践的DEMO,旨在帮助开发者理解和掌握这三大框架的协同工作方式。 首先,Struts2作为MVC(模型-视图-控制器)架构的一部分,主要负责处理HTTP请求,提供...

    struts2+spring+hibernate 整合的jar包

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合(SSH)极大地提升了开发效率和项目的可维护性。下面将详细讲解这三大框架的核心功能以及整合过程中的关键知识点。 1. **Struts2**:Struts2是一...

    struts2和spring和Hibernate整合的jar包

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自解决应用程序的不同问题,而将这三者整合在一起可以构建高效、灵活的企业级应用。Struts2作为MVC(Model-View-Controller)框架,负责处理用户请求...

    Struts1+Spring2+Hibernate2整合详细例子

    整合Struts1、Spring2和Hibernate2的过程主要包括以下步骤: 1. **配置环境**:确保所有依赖库已添加到项目的类路径中,如struts-core.jar、spring-framework.jar和hibernate-core.jar等。 2. **配置Struts1**:...

    [轻量级Java_EE企业应用实战_Struts2_Spring3_Hibernate整合开发

    【轻量级Java_EE企业应用实战_Struts2_Spring3_Hibernate整合开发】这个主题主要涉及的是Java EE领域中的三大框架——Struts2、Spring3和Hibernate的集成应用,这是构建现代Java后端系统的一种常见方式。这些框架...

    struts2整合Spring和hibernate案例

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自在应用程序的不同层面发挥着重要作用。Struts2作为MVC(模型-视图-控制器)框架,负责处理请求和展示视图;Spring是一个全面的后端解决方案,提供...

    MyClipse6.0\Struts2,Spring与Hibernate整合应用,学生成绩管理系统

    《Struts2、Spring与Hibernate整合应用:学生成绩管理系统》 在IT行业中,构建一个高效、稳定的Web应用程序常常需要整合不同的框架。本项目“学生成绩管理系统”就是基于Struts2、Spring和Hibernate三大主流Java ...

    最新项目系统:Struts2+Spring4+Hibernate4三大框架整合

    总的来说,"最新项目系统:Struts2+Spring4+Hibernate4三大框架整合"为学习和实践Java Web开发提供了一个实用的平台,对于提升开发者的技术水平和项目经验具有极大的帮助。通过深入研究和实践,开发者可以掌握Java ...

    Struts2,Spring与Hibernate整合应用,学生成绩管理系统

    ### Struts2、Spring与Hibernate整合应用:学生成绩管理系统 #### 一、知识点概览 本项目聚焦于Struts2、Spring与Hibernate三大框架的整合应用,旨在构建一个高效、稳定、易于维护的学生成绩管理系统。通过整合这...

    struts2整合spring、hibernate的jar包

    3. **Hibernate整合**:Hibernate作为一个ORM框架,简化了Java对象与数据库表之间的交互。整合Hibernate需要引入`hibernate-core.jar`、`hibernate-entitymanager.jar`等jar包,通过Hibernate的Session和...

    Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2

    Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2

    struts2 spring hibernate框架技术与项目实战 光盘源码上

    Struts2、Spring和...总之,Struts2、Spring和Hibernate的整合使用,能够构建出高效且易于维护的企业级Web应用。这份源码资料提供了一个实战案例,对于想要深入学习这三大框架的开发者来说,是一份宝贵的参考资料。

    Struts2,Spring,Hibernate jar包下载

    Struts2、Spring和Hibernate是Java开发中三大主流的开源框架,它们分别专注于Web层、业务层和服务层的管理,组合使用可以构建出强大的企业级应用。这些框架的jar包是开发人员日常工作中必不可少的工具。 **Struts2*...

    struts2+spring2.5+hibernate3.2整合完整项目,带数据库脚本

    Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...

    struts2 spring hibernate 整合

    【SSH整合】指的是Struts2、Spring和Hibernate这三个开源框架的集成应用,它们在JavaEE企业级开发中占据着重要地位。Struts2是一个MVC框架,负责处理用户请求和控制应用程序流程;Spring是一个全面的后端解决方案,...

    轻量级JavaEE企业应用实战_Struts2+Spring3+Hibernate整合开发_第3版.part1

    轻量级JavaEE企业应用实战_Struts2+Spring3+Hibernate整合开发_第3版.part1

    Struts2 Spring3 Hibernate3.3框架整合

    Struts2 Spring3 Hibernate3.3框架整合,增删改查,包含有数据库建表语句,包含有JAR包,包含有源代码。包含有事务的配置以及运用。使用的是Oracle的序列来提供的主键自增,建表和建立序列的sql语句,已经放在工程...

    struts2 spring hibernate整合的简单登录代码

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...

    struts2+spring2.5+hibernate3.2

    同时,Spring与Hibernate整合,通过SessionFactory创建和管理Session,处理持久化操作。在Struts2的Action中,可以通过Spring的代理来调用业务服务,而服务层则通过Hibernate的DAO(Data Access Object)进行数据库...

Global site tag (gtag.js) - Google Analytics