【SpingIOC】管理事物的实现详解

总结一下SpringIOC容器从开启事物到管理事物的开发步骤以及一些具体的实现步骤:

工程结构目录如下图,这里不一一详细说明其他各类之间的关系:



基于注解的方式声明事物和IOC容器管理事物:

<!-- 配置事物管理器 -->
	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	<!-- 指定基于注解的方式 配置-->
	<tx:annotation-driven transaction-manager="txManager" />

一,beans.xml配置如下:

<!-- 自动扫描与装配bean -->
	<context:component-scan base-package="cn.lsh.spring"/>
	
	<!-- 导入外部的配置文件 -->
	<context:property-placeholder location="classpath:jdbc.properties"/>
	
	<!--  配置连接池-->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${driver}"></property>
		<property name="JdbcUrl" value="${url}"></property>
		<property name="user" value="${username}"></property>
		<property name="password" value="${password}"></property>
		
		<property name="minPoolSize" value="3"></property>
		<property name="maxPoolSize" value="10"></property>
	</bean>
	
	<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	<!-- 配置事物管理器 -->
	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	<!-- 指定基于注解的方式 配置-->
	<tx:annotation-driven transaction-manager="txManager" />
</beans>

二,新建UserService接口只实现了一个save()方法

public interface UserService {
	
	void save();
}

三,新建UserServiceImpl实现UserService接口:

//声明名称为userService的bean对象(如果没有指定,则默认为类的名称)
@Service("userService")
public class UserServiceImpl implements UserService {
	
	@Resource//注入到容器中
	private UserDao userDao;
	
	@Transactional//声明此方法开启事物(置于类上,则说明该类所有的方法开启事物)
	public void save() {
		userDao.addUser(new User());
		int i=1/0; //报异常回滚
		userDao.addUser(new User());
	}
}
四,新建测试类:

public class TestDemo3 {
	ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
	//获取名称为userService的bean对象
	UserService service = (UserService)ac.getBean("userService");
	
	@Test
	public void test1(){
		service.save();	
	}
}
以上代码为SpringIOC容器管理事物具体实现步骤(基于注解的方式),与JDBC和Hibernate相比较,IOC容器管理事物要简单易学!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值