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

来源:互联网 发布:我是歌手4网络踢馆赛 编辑:程序博客网 时间:2024/06/06 08:32

总结一下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");@Testpublic void test1(){service.save();}}
以上代码为SpringIOC容器管理事物具体实现步骤(基于注解的方式),与JDBC和Hibernate相比较,IOC容器管理事物要简单易学!




0 0
原创粉丝点击