`

Spring3.0和Hibernate3.6集成的事务控制配置方法

阅读更多

以下代码示例主要是说明Spring和Hibernate集成后的事务配置方法及使用Spring的AOP实现方法拦截的配置方法()。

环境要求,Spring3.0.5、Hibernate3.6.0

<?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-3.0.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
	<!-- 定义Proxool数据源 -->	
	<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
		<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
		<property name="driverUrl" value="jdbc:sqlserver://localhost:1433;databaseName=NewDB;"></property>
		<property name="user" value="sa"></property>
		<property name="password" value="123456"></property>
		<property name="maximumConnectionCount" value="3"></property>
		<property name="houseKeepingTestSql" value="select getdate()"></property>
	</bean>
	<!-- 定义Hibernate sessionFactory -->	
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" destroy-method="destroy">
		<property name="dataSource" ref="dataSource"></property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/zywang/model/Student.hbm.xml</value>
				<value>com/zywang/model/Teacher.hbm.xml</value>
			</list>
		</property>
	</bean>
	<!-- ===================================事务定义开始================================ -->
	<!-- Hibernate事务管理器 -->
	<bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<!-- 定义通知拦截方法 -->
	<tx:advice id="txAdvice" transaction-manager="hibernateTransactionManager">
		<tx:attributes>
			<tx:method name="*" read-only="true"/>
			<tx:method name="add*" propagation="REQUIRED"/>
			<tx:method name="update*" propagation="REQUIRED"/>
			<tx:method name="delete*" propagation="REQUIRED"/>
		</tx:attributes>
	</tx:advice>
	<!-- 事务拦截切面定义 -->
	<aop:config>
		<aop:pointcut expression="execution(* com.zywang.services.*.*(..))" id="servicesOperation"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="servicesOperation"/>
	</aop:config>
	<!-- ===================================事务定义结束================================ -->
	
	<!-- ===================================定义方法调用日志开始================================ -->
	<!-- 日志输出类 -->
	<bean id="logAround" class="com.zywang.action.LogAround"></bean>
	<!-- 定义CGLIB方式,代理指定类 -->
	<aop:config proxy-target-class="true">
		<aop:aspect ref="logAround">
			<aop:around method="doLogAround" pointcut="execution(* com.zywang.action.*.*(..))"/>
		</aop:aspect>
	</aop:config>
	<!-- 定义接口方式,代理指定类 -->
	<aop:config>
		<aop:aspect ref="logAround">
			<aop:around method="doLogAround" pointcut="execution(* com.zywang.services.*.*(..))"/>
			<aop:around method="doLogAround" pointcut="execution(* com.zywang.dao.*.*(..))"/>
		</aop:aspect>
	</aop:config>
	<!-- ===================================定义方法调用日志结束================================ -->
	
</beans>

 上面用到的LogAround.java文件

package com.zywang.action;

import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;

/**
 * @author ZYWANG
 *
 */
public class LogAround {
	private static Logger logger = Logger.getLogger(LogAround.class);
	public Object doLogAround(ProceedingJoinPoint joinPoint) throws Throwable{
		logger.info("开始"+joinPoint);
		Object object = joinPoint.proceed();
		logger.info("结束"+joinPoint);
		return object;
	}
}

 

分享到:
评论

相关推荐

    spring3.0+hibernate3.6+struts2.38整合包加配置文件下载

    标题中的"spring3.0+hibernate3.6+struts2.38整合包加配置文件下载"指的是一个包含三个关键Java EE框架——Spring 3.0、Hibernate 3.6和Struts 2.38的集成开发环境。这个整合包是为了简化开发者在搭建基于这些技术的...

    struts2.21-spring3.0-hibernate3.6 全部jar包

    在"struts2.21-spring3.0-hibernate3.6 全部jar包"中,包含的是这三个框架的特定版本,即Struts2的2.21版、Spring的3.0版和Hibernate的3.6版。这些版本在当时是相对稳定的,并广泛用于各种项目。 Struts2.21主要...

    ssh包spring3.0+hibernate3.6+struts2

    在实际开发过程中,开发者需要根据项目需求,配置相应的Spring Bean定义、Hibernate实体类和Struts2动作类,同时设置好数据库连接和事务管理等。 通过SSH框架的整合,开发者可以实现模型层(Hibernate)、业务逻辑...

    S2SH整合注册程序(Struts2.2+Spring3.0+Hibernate3.6).rar

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2专注于MVC(Model-View-Controller)架构的实现,Spring提供了依赖注入和面向切面编程,而Hibernate则作为持久层框架,简化...

    spring3.0 mvc+hibernate3.6 +jpa 注解实例

    在本实例中,我们探讨的是一个基于Spring 3.0、Hibernate 3.6和Java Persistence API (JPA) 的集成应用,其中充分利用了注解来简化开发过程。这是一个适用于初学者和经验丰富的开发者深入了解这些技术如何协同工作的...

    最新struts2.2_hibernate3.6_spring3.0整合

    Struts2.2、Hibernate3.6和Spring3.0是Java Web开发中非常重要的三个框架,它们分别在MVC模式、持久层管理和依赖注入方面发挥着关键作用。本整合教程将详细介绍如何将这三个框架有效地集成在一起,以构建高效、灵活...

    struts2.3+hibernate3.6+spring3.0整合实例

    Struts2.3、Hibernate3.6和Spring3.0是Java Web开发中经典的MVC框架组合,被誉为SSH(Spring、Struts、Hibernate)架构。这个整合实例旨在展示如何将这三个框架有效地集成在一起,实现一个完整的用户添加功能。下面...

    整合struts2.2.1+spring3.0.4+hibernate3.6选择jar包

    这三个框架分别负责处理不同的层面:Struts2用于MVC(Model-View-Controller)架构中的控制层,Spring作为依赖注入和事务管理的核心,而Hibernate则用于对象关系映射(ORM)。为了确保项目的高效运行,合理地选择和...

    spring3.0.5与JPA2.0(hibernate3.6)的集成详细说明

    这种集成不仅简化了数据库操作,还充分利用了Spring的IoC(控制反转)和AOP功能,让代码更加整洁、模块化。 在实际开发中,你可能还需要考虑其他因素,比如性能优化、缓存策略、数据迁移等。对于复杂的应用场景,...

    spring3.0_doc_api

    6. **数据访问增强**:增加了对JPA 2.0、JDBC 3.1和Hibernate 3.6的支持,以及对NoSQL数据库如MongoDB的集成。 7. **异步方法执行**:通过`@Async`注解,可以实现方法的异步执行,提高应用性能。 8. **Web Flow ...

    Spring3.0源码3

    在这个“Spring3.0源码3”中,我们将深入探讨Spring 3.0的核心组件和设计理念,以及它在实际开发中的应用。 1. **依赖注入(DI, Dependency Injection)**:Spring的核心特性之一,允许对象之间的依赖关系通过配置...

    spring3.0英文帮助文档

    在数据访问层面,Spring 3.0引入了对JPA(Java Persistence API)2.0和Hibernate 3.6的支持,使得ORM(对象关系映射)更加高效。此外,Spring的JDBC抽象层也得到了改进,提供了模板和回调模式,简化了数据库操作。 ...

    轻量级J2EE企业级应用实战

    本文将详细介绍轻量级J2EE企业级应用实战的知识点,重点内容围绕JavaEE基础开发知识、三大框架Struts2.2、Spring3.0、Hibernate3.6的使用方法,以及如何将这些技术整合应用于实际项目中。 首先,我们需要了解JavaEE...

    spring3.0jar包及源码

    3.0版本增强了对JPA 2.0和Hibernate 3.6的支持,使得数据库操作更加高效和便捷。 4. **MVC**:Spring MVC是Spring框架中的Web层组件,用于构建RESTful风格的Web应用程序。3.0版本引入了更多特性,如支持内容协商、...

    最新S2SH整合所需jar包

    `hibernate3.6`指的是Hibernate的3.6版本。Hibernate通过Java对象和数据库表之间的映射(Hibernate Mapping),实现了数据库操作的自动化,减少了SQL的编写。它的主要组件有SessionFactory、Session、Query等。 3. ...

    J2EE开发ss2h框架JAR包整合

    标题"J2EE开发ss2h框架JAR包整合"指的是将Struts2.2、Hibernate3.6和Spring3.0这三大框架的JAR包整合到一个项目中,以实现高效的数据访问、业务逻辑处理和前端展示。以下是每个框架的核心功能: 1. **Struts2**:...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

Global site tag (gtag.js) - Google Analytics