`

spring @Transactional配置说明 .

    博客分类:
  • java
 
阅读更多

事务注解说明
@Transactional 类事务说明机制

@Transactional(noRollbackFor=RuntimeException.class) 方法事务说明
@TRacsactional(RollbackFor=Exception.class)
@Tracsactional(readOnly=true);
@Tracsactional(timeout=100)
@Tracsactional(isolation)数据库的隔离级别
{
    Read Uncommited:读取未提交的数据(会出现脏读 不可重复读 幻读)
    Read Cimmited:读已提交的数据(会出现不可重复读和幻读)
    Repeatable Read:可重复读(会出现幻读)
    Serializable:串行化
}

information
{
    脏读:一个事物读取到另外一个事物未提交的更新的数据
    不可重复读:在同一个事物中,多次读取同一个数据返回结果有所不同 就是后续的读取可以读到另外一个事物的已经提交的更新数据
    可重复读:在同一个事物多次读取数据时 能够保证所读取数据一样 也就是后读取的不能读到另外一个事物已经提交的数据
    幻读:一个事物读取到另外一个事物已经提交的更新的数据
}

针对查询方法
@Transactional(propagation=Propagation.NOT_SUPPORTED)针对某个方法不开启事务
@Transactional(propagation=Propagation.REQUIRED)默认的事务支持

Propagation.REQUIRED

Propagation.NOT_SUPPOKTED

Propagation.REQUIRESNEW

propagation.MANDATORY

Propagation.SUPPOKTS

Propagation.Never

Propagation.NESTED

XML配置事物

注解配置事物例子

public class Bean1{
    @Transaction(propagation=Propagation.Required)
    public void update(){
        executeUpdate(SQL);
    }
}

public class Bean2{
    @Transaction(propagation=Propagation.Required)
    public void update(){
        executeUpdate(SQL);
    }
}

public class TransactionExample {
    @Transaction(propagation=Propagation.Required)
    public void payment(){
        daoBean1.update();
        daoBean2.update();
    }
}

 

//事务传播属性
    @Transactional(propagation=Propagation.REQUIRED) //如果有事务,那么加入事
务,没有的话新建一个(不写的情况下)
    @Transactional(propagation=Propagation.NOT_SUPPORTED) //容器不为这个方法
开启事务
    @Transactional(propagation=Propagation.REQUIRES_NEW) //不管是否存在事务,
都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
    @Transactional(propagation=Propagation.MANDATORY) //必须在一个已有的事务中
执行,否则抛出异常
    @Transactional(propagation=Propagation.NEVER) //必须在一个没有的事务中执
行,否则抛出异常(与Propagation.MANDATORY相反)
    @Transactional(propagation=Propagation.SUPPORTS) //如果其他bean调用这个方
法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
    /*public void methodName(){
        update();//本类的修改方法 1
            otherBean.update();//调用其他类的修改方法
        update();//本类的修改方法 2
    }
    other失败了不会影响 本类的修改提交成功
    本类update的失败,other也失败
    */
@Transactional(propagation=Propagation.NESTED)

@Transactional (propagation = 
Propagation.REQUIRED,readOnly=true) //readOnly=true只读,不能更新,删除

@Transactional (propagation = Propagation.REQUIRED,timeout=30)//设置超时时间

@Transactional (propagation = 
Propagation.REQUIRED,isolation=Isolation.DEFAULT)//设置数据库隔离级别

分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 ...

    Spring中文帮助文档

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...

    Spring API

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...

    spring chm文档

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点...

    Spring 2.0 开发参考手册

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点...

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

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    spring与mybatis整合实现事务配置

    struts2、spring与mybatis整合 包含简单登录功能 事务配置,运行JunitTestVillageArticle的modify测试。配置说明参考注释

    Spring3.x企业应用开发实战(完整版) part1

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    OA项目SSH整合框架

    2,在struts-config.xml中配置controller(Spring Reference 15.4.1.1. DelegatingRequestProcessor) <!-- 集成Spring --> <set-property property="processorClass" value="org.springframework.web....

    Springboot 常用注解汇总说明

    一、启动注解 @SpringBootApplication 二、Controller 相关注解 三、取请求参数值 四、注入bean相关 五、导入配置文件 六、事务注解 @Transactional

    cms后台管理

    通过servlet配置,可以找到jeecms-servlet-front.xml,在此配置文件的最后有 <import resource="jeecms-servlet-front-action.xml"/>代码 找到jeecms-servlet-front-action.xml,在此配置文件中有 ...

    《MyEclipse 6 Java 开发中文教程》前10章

    10.5.2.5 用Spring 2.0 的@Transactional标注解决事务提交问题(最佳方案) 251 10.5.2.6 使用 HibernateTemplate 实现分页查询 254 10.6 小结 255 10.7 参考资料 255 10.7.1 MyEclipse生成的Spring+Hibernate无法...

    mailjet-apiv3-java:[API v3] Mailjet Java API包装器

    发行说明v5.1.1 修复了在TransactionalEmailBuilder中字符串变量和标题的序列化过程中添加其他引号的问题v5.1.0 将OkHttpClient降级到v3.12以与Spring Boot中的当前版本兼容添加了交易电子邮件生成器,使发送消息变...

Global site tag (gtag.js) - Google Analytics