`

spring进行声明式事务管理(xml)(推荐,可以同时配置好多方法)

 
阅读更多

这里UserService.java中不用Transactional注解

UserService.java

package com.test.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.test.dao.LogDAO;
import com.test.dao.UserDAO;
import com.test.model.Log;
import com.test.model.User;

@Component("userService")
public class UserService {
	private UserDAO userDAO;
	private LogDAO logDAO;

	public void add(User user) {
		userDAO.save(user);
		Log log = new Log();
		log.setMessage("user save success!");
		logDAO.save(log);
	}

	public UserDAO getUserDAO() {
		return userDAO;
	}

	// 这里会找注解Component的值为:userDAOImpl的那个类
	@Resource(name = "userDAOImpl")
	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}

	public LogDAO getLogDAO() {
		return logDAO;
	}

	@Resource(name = "logDAOImpl")
	public void setLogDAO(LogDAO logDAO) {
		this.logDAO = logDAO;
	}

}

 

bean.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:context="http://www.springframework.org/schema/context"
	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.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	
	<context:component-scan base-package="com.test"></context:component-scan>
	
	<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
	    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
	    <property name="url" value="jdbc:oracle:thin:@localhost:1521:oralsb"/>
	    <property name="username" value="scott"/>
	    <property name="password" value="tiger"/>
	</bean>
	
	<!-- annotation版 -->
	<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
	    <property name="dataSource" ref="myDataSource"/>
	    <!-- 
		<property name="annotatedClasses">
			<list>
	        	<value>com.test.model.User</value>
	        	<value>com.test.model.Log</value>
			</list>
	    </property>
	     -->
	     <!-- 可以使用下面packagesToScan代替上面annotatedClasses -->
		<property name="packagesToScan">
			<list>
	        	<value>com.test.model</value>
			</list>
	    </property>
	    <property name="hibernateProperties">
	    	<props>
		        <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>
		        <prop key="hibernate.show_sql">true</prop>
		        <prop key="hibernate.format_sql">true</prop>
<!--		        <prop key="hibernate.hbm2ddl.auto">create</prop>-->
		    </props>
	    </property>
	</bean>
	  
	<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="mySessionFactory" />
	</bean>
	
	<!-- 定义建议,使用txManager事务管理者 -->
	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="add" propagation="REQUIRED"/>
		</tx:attributes>
	</tx:advice>
	
	<aop:config>
		<!-- 定义一个切入点 -->
		<aop:pointcut id="businessService" expression="execution(public * com.test.service..*.*(..))"/>
		<aop:advisor pointcut-ref="businessService" advice-ref="txAdvice"/>
	</aop:config>
	
</beans>

 

其他内容和“spring进行声明式事务管理(annotation)”这一节一致

分享到:
评论

相关推荐

    Xml文件配置实现声明式事务管理

    在Spring框架中,声明式事务管理是一种非常重要的特性,它允许开发者通过XML配置或注解来定义事务的边界,而无需在业务代码中显式地管理事务。这种方式极大地提高了代码的可读性和可维护性。本篇文章将深入探讨如何...

    Spring声明式事务配置管理方法

    理解并熟练运用Spring声明式事务管理,可以有效提高应用程序的事务处理能力,同时降低事务管理的复杂性。通过合理的配置,可以确保数据的一致性和完整性,这对于任何处理数据库操作的应用都是至关重要的。

    spring声明式事务管理配置方式

    在"spring声明式事务管理配置方式"中,主要涉及到以下几个关键知识点: 1. **Spring事务管理器(Transaction Manager)**: - Spring支持多种事务管理器,如DataSourceTransactionManager(用于JDBC事务)和...

    spring声明式事务配置

    ### 标题解读:Spring声明式事务配置 Spring框架提供了两种主要类型的事务管理方式:编程式事务管理和声明式事务管理。声明式事务管理通过XML配置或注解的形式定义事务边界,使得业务逻辑与事务控制分离。 ### ...

    Spring使用XML配置声明式事务

    在Spring框架中,声明式事务管理是实现事务处理...在博文"Spring使用XML配置声明式事务"中,作者详细讲解了每个步骤,并可能通过示例代码展示了如何实际应用这些配置,帮助读者更好地理解和掌握Spring声明式事务管理。

    全面分析 Spring 的编程式事务管理及声明式事务管理

    1. **基于XML的声明式事务管理**: 在Spring的配置文件中,我们可以通过`&lt;tx:advice&gt;`、`&lt;aop:config&gt;`等元素定义事务的边界,指定哪些方法需要在事务中运行。 2. **基于注解的声明式事务管理**: 使用@Transactional...

    Spring3配置声明式事务

    ### Spring3配置声明式事务详解 #### 一、Spring3中的声明式事务简介 Spring框架提供了两种事务管理方式:编程式事务管理和声明式事务管理。其中声明式事务管理通过配置来实现事务管理,大大简化了代码量,提高了...

    spring+mybatis的声明式事务

    在Spring中,声明式事务主要通过AOP(面向切面编程)实现,它允许我们在不修改业务代码的情况下,通过XML配置或Java配置,以及注解来控制事务的边界。 3. **XML配置事务** 在Spring的XML配置文件中,可以通过`...

    Spring 整合mybatis(注解&xml版声明式事务).pdf

    在声明式事务管理中,我们可以在业务逻辑方法上添加注解或配置XML来控制事务,而不需要在代码中显式地使用事务API来管理事务。这种方式可以让开发者专注于业务逻辑的实现,而由框架来保证事务的ACID属性。 在整合的...

    Spring 2.5整合iBATIS 2.3并使用Spring的声明式事务管理

    通过这些步骤,我们可以将业务逻辑与数据访问层分离,同时借助Spring的声明式事务管理,提高代码的可读性和维护性。 总的来说,Spring 2.5整合iBATIS 2.3是一个常见的Java应用架构模式,它允许我们在不牺牲灵活性和...

    spring声明式事务处理demo

    在这个"spring声明式事务处理demo"中,我们将探讨如何在MyEclipse环境下实现这一功能。 首先,我们要理解Spring事务管理的两种主要方式:编程式事务管理和声明式事务管理。编程式事务管理通常通过AOP(面向切面编程...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    总的来说,Spring 3和Hibernate 4结合使用声明式事务管理,使得我们无需在代码中显式调用事务开始、提交和回滚,而是通过注解和配置文件来声明事务的边界和行为。这种方式降低了代码的复杂度,提高了可维护性和可...

    Spring基于XML方式配置事务

    编程式事务管理通过`PlatformTransactionManager`接口及其实现类(如`DataSourceTransactionManager`)进行手动控制,而声明式事务管理则更加简便,通过在XML配置或注解中声明事务边界。 在XML配置中,事务管理主要...

    实验 spring 声明事务

    实验 "Spring 声明事务" ...通过这个实验,学生可以深入理解Spring声明式事务管理的工作原理,以及如何在实际项目中配置和使用。这将有助于他们在未来开发中更好地处理事务相关的复杂问题,确保应用程序的数据一致性。

    spring_声明式事务_xml事务的书写.zip

    本教程将深入探讨Spring声明式事务以及如何通过XML配置来管理事务。声明式事务是Spring框架的一大亮点,它允许开发者无需在业务代码中显式处理事务,而是通过配置来控制事务的边界。 首先,我们要理解什么是事务。...

    spring编程式事务与声明式事务详解

    Spring 提供了多种方式来实现声明式事务管理,例如使用 @Transactional 注解或使用 XML 配置文件。 总结 本文通过详细分析 Spring 的编程式事务管理及声明式事务管理,帮助读者理解事务管理的重要性和实现方式。...

    Spring使用TransactionProxyFactoryBean声明式事务配置实例

    在Spring框架中,声明式事务管理是通过元数据(如XML配置或注解)来定义事务边界,使得开发者无需在业务代码中显式调用事务管理API,即可实现事务的控制。TransactionProxyFactoryBean是Spring提供的一种工具,用于...

    全面分析_Spring_的编程式事务管理及声明式事务管理

    本教程将深入探讨 Spring 的编程式事务管理和声明式事务管理,帮助你理解这两种方式的差异与应用场景。 首先,编程式事务管理依赖于编程的方式显式地控制事务的开始、提交、回滚等操作。它通过实现 `...

    Spring声明式事务处理

    文件名为`Spring声明式事务处理-1.mht`到`Spring声明式事务处理-5.mht`,通过阅读这些文件,你将能够深入理解Spring声明式事务处理的各个方面,包括配置、使用场景、最佳实践以及常见问题的解决方法。

    使用Spring的声明式事务----AOP方式

    在Spring框架中,声明式事务管理是通过AOP(面向切面编程)实现的,它为开发者提供了方便、高效且灵活的事务管理机制。本文将深入探讨如何利用Spring的声明式事务来处理业务操作中的数据一致性问题,以及相关源码...

Global site tag (gtag.js) - Google Analytics