Spring注解和非注解实现声明时事务处理功能
来源:互联网 发布:js循环数组赋值 编辑:程序博客网 时间:2024/05/16 17:04
一、Spring注解和非注解实现事务处理功能
例1:使用注解实现事务处理
在Spring配置文件中配置事务管理类,并添加对注解配置的事务的支持
<!-- 当容器开启时打开注解 -->
<context:component-scan base-package="com.yh.ssh.dao,com.yh.ssh.biz,com.yh.ssh.action">
</context:component-scan>
<!-- sessionFactory注入事务管理器 -->
<bean id="txManager" class="org.springframework.orm.hibernate3 .HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 注释驱动 -->
<tx:annotation-driven transaction-manager="txManager" />
使用@Transactional为方法添加事务支持
@Transactional(propagation=Propagation.REQUIRED)
public void addBathUser(List<Users> us) {
// TODO Auto-generated method stub
for (Users users : us) {
userDao.saveUser(users);
}
}
a. }propagation 枚举型:Propagation
可选的传播性设置。使用举例:@Transactional(propagation=Propagation.REQUIRES_NEW)
b. isolation 枚举型:Isolation
可选的隔离性级别。使用举例:@Transactional(isolation=Isolation.READ_COMMITTED)
c. readOnly 布尔型
是否为只读型事务。使用举例:@Transactional(readOnly=true)
d. timeout int型(以秒为单位)
事务超时。使用举例:Transactional(timeout=10)
e. rollbackFor 一组 Class 类的实例,必须是Throwable的子类
一组异常类,遇到时 必须 回滚。使用举例:@Transactional(rollbackFor={SQLException.class}),多个异常用逗号隔开
f. rollbackForClassName 一组 Class 类的名字,必须是Throwable的子类
一组异常类名,遇到时 必须 回滚。使用举例:@Transactional(rollbackForClassName={"SQLException"}),多个异常用逗号隔开
g. noRollbackFor 一组 Class 类的实例,必须是Throwable的子类
一组异常类,遇到时 必须不 回滚
h. noRollbackForClassName 一组 Class 类的名字,必须是Throwable的子类
一组异常类名,遇到时 必须不 回滚
例2:使用非注解实现事务处理
业务类
public void addBathUser(List<Users> us) {
// TODO Auto-generated method stub
for (Users users : us) {
userDao.saveUser(users);
}
}
Spring容器配置信息,编制事物规则,利用该规则编写切面,而后织入
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sf"></property>
</bean>
<!-- 事务规则 -->
<tx:advice id="txadvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="find*" read-only="true" />
<tx:method name="add*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- 织入 -->
<aop:config>
<aop:pointcut expression="execution(* com.yh.ssh.biz.*.*(..))" id="pc" />
<aop:advisor advice-ref="txadvice" pointcut-ref="pc" />
</aop:config>
- Spring注解和非注解实现声明时事务处理功能
- Spring注解实现定时功能
- 自己实现spring的注解扫描处理功能
- spring 声明式事务管理注解方式实现
- spring声明式事务管理(注解实现)
- spring注解和非注解使用bean的流程原理
- 【SSH】注解和非注解的形式配置Spring
- 注解和声明方式实现AOP
- Spring MVC 非注解方式 也可以注解和非注解结合使用
- 用spring@Value注解实现常量功能
- spring注解功能小记
- Spring 注解功能介绍
- spring+mybatis声明式 和 注解式实现事务 核心代码
- 2、spring非注解/注解开发
- spring通过注解实现声明式事务控制
- Spring声明式事务管理(基于注解方式实现)
- spring中注解方式实现声明式事务管理
- Spring注解事务和声明事务配置GOOD
- CDN网络访问原理
- SDK手动创建窗口
- STUN/TURN/ICE协议在P2P SIP中的应用(二)
- Talking R through Java
- 谷歌约束控件(ConstraintLayout)扁平化布局入门
- Spring注解和非注解实现声明时事务处理功能
- 编写一个程序,把较长的输入行“折”成短一些的多行,折行的位置在输入行的第N列之前的最后一个非空格之后
- halcon中的分类器之GMM算子全讲解
- Android系统中Bitmap是否有调用recycle方法的必要性
- CRC8 测试程序
- ModSecurity OWASP 规则集说明
- 将一个字符串转换为整数
- 如何显示ViewPager上下页的部分布局
- iOS真机测试