- 浏览: 227856 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (344)
- Spring (38)
- Spring-mvc (9)
- hibernate (21)
- mvn (5)
- shiro (2)
- java script (14)
- jquery (9)
- ext (6)
- asm (1)
- 大数据 (2)
- 分布式 (14)
- node.js (1)
- webservice (4)
- java (47)
- oracle (36)
- mysql (11)
- sql (33)
- 工具 (13)
- github (3)
- tomcat (4)
- jetty (1)
- struts2 (1)
- android (13)
- xml (1)
- primefaces (1)
- secure (2)
- 编码 (3)
- EL (3)
- jsp (2)
- css (7)
- java 算法 (3)
- 移动端 (2)
- other (3)
- mybatis (1)
- 缓存 (1)
- 乱 (1)
- apache commons (2)
- ehcache (1)
- 方法论 (1)
- activiti (1)
- sqlserver (5)
- 业务 (4)
- 数据结构 (5)
- liux (1)
- commons (4)
- jvm (2)
最新评论
-
张yyyyyy:
不明觉厉
一次sql 调优心得 -
masuweng:
某一类日期范围内每7天一组的销量之和,以及行转列 -
faradayroger:
[color=green][color=red][/color ...
定时JOB,去请求数据,并找出最新数据持久化 -
cainiao1923:
java-lxm 写道 写文章贴个图也不好好贴....难道是网 ...
spring 注入static属性 -
java-lxm:
写文章贴个图也不好好贴
spring 注入static属性
We’re using the Spring Framework in most of our applications (and thus also in the Catalysts Platform) and are really satisfied with it.
One of the big advantages is the the declarative transaction handling using the @Transactional attribute.
import org.springframework.transaction.Transactional;
@Transactional
public class MyService implements IMyService {
public List getResults () {
// do something
}
public void foo() {
throw new java.lang.UnsupportedOperationException();
}
public void bar() {
throw new java.lang.Exception();
}
}
That simple annoation on class managed by a Spring ApplicationContext causes all method calls onto that service to be bound to a transaction. The transaction is committed after the method call has left the service again and it’s rollbacked for the case an exception is thrown (e.g. after calling the (quite silly) method foo()).
But be careful: Only unchecked exceptions (that is, subclasses of java.lang.RuntimeException) are rollbacked by default. For the case, a checked exception is thrown, the transaction will be committed!
The Spring documentation explains that as follows:
While the EJB default behavior is for the EJB container to automatically roll back the transaction on a system exception (usually a runtime exception), EJB CMT does not roll back the transaction automatically on an application exception (that is, a checked exception other than java.rmi.RemoteException). While the Spring default behavior for declarative transaction management follows EJB convention (roll back is automatic only on unchecked exceptions), it is often useful to customize this.
And that customization can be done very easily by just adding the parameter rollBackFor to the @Transactional attribute:
import org.springframework.transaction.Transactional;
@Transactional(rollbackFor = Exception.class)
public class MyService implements IMyService {
public List getResults () {
// do something
}
public void foo() {
throw new java.lang.UnsupportedOperationException();
}
public void bar() {
throw new java.lang.Exception();
}
}
In that case, the transaction will even be be rollbacked on a call to the method bar().
from : https://www.catalysts.cc/en/wissenswertes/spring-transactional-rollback-on-checked-exceptions/
One of the big advantages is the the declarative transaction handling using the @Transactional attribute.
import org.springframework.transaction.Transactional;
@Transactional
public class MyService implements IMyService {
public List getResults () {
// do something
}
public void foo() {
throw new java.lang.UnsupportedOperationException();
}
public void bar() {
throw new java.lang.Exception();
}
}
That simple annoation on class managed by a Spring ApplicationContext causes all method calls onto that service to be bound to a transaction. The transaction is committed after the method call has left the service again and it’s rollbacked for the case an exception is thrown (e.g. after calling the (quite silly) method foo()).
But be careful: Only unchecked exceptions (that is, subclasses of java.lang.RuntimeException) are rollbacked by default. For the case, a checked exception is thrown, the transaction will be committed!
The Spring documentation explains that as follows:
While the EJB default behavior is for the EJB container to automatically roll back the transaction on a system exception (usually a runtime exception), EJB CMT does not roll back the transaction automatically on an application exception (that is, a checked exception other than java.rmi.RemoteException). While the Spring default behavior for declarative transaction management follows EJB convention (roll back is automatic only on unchecked exceptions), it is often useful to customize this.
And that customization can be done very easily by just adding the parameter rollBackFor to the @Transactional attribute:
import org.springframework.transaction.Transactional;
@Transactional(rollbackFor = Exception.class)
public class MyService implements IMyService {
public List getResults () {
// do something
}
public void foo() {
throw new java.lang.UnsupportedOperationException();
}
public void bar() {
throw new java.lang.Exception();
}
}
In that case, the transaction will even be be rollbacked on a call to the method bar().
from : https://www.catalysts.cc/en/wissenswertes/spring-transactional-rollback-on-checked-exceptions/
发表评论
-
spring事务理解
2018-11-01 11:58 3281 传播行为是spring提供的,其他是DB提供的。传播的 ... -
记录一次事务回滚失败,spring mvc环境
2018-10-31 15:36 502<context:component-scan ... -
log4j配置详解(非常详细)
2018-09-05 15:59 416https://www.cnblogs.com/gaishi ... -
JOB调接口大数据 最终版
2017-02-18 14:30 410package jiangdu.fire.job.wj.ba ... -
(转) Spring的quartz定时器同一时刻重复执行二次的问题解决{经测试不可用}
2017-02-16 11:57 389最近用Spring的quartz定时器的时候,发现到时间后, ... -
(转)解决Quartz定时任务被触发两次的问题
2017-02-16 11:54 772摘要: 解决quartz定时任务被触发两次的问题 方法1、 ... -
quartz并发(总结)
2017-02-15 21:20 8211.http://blog.csdn.net/pdw2009 ... -
(转)关于quartz的并发问题
2017-02-15 20:48 8151、quartz默认是多线程的,如果执行任务的对象不是单例的 ... -
@Autowired @Qualifier("userDao") 要配合使用
2017-02-10 15:06 756@Autowired默认是按类型匹配的方式,在容器查找匹配的b ... -
前面博客{定时JOB,去请求数据,并找出最新数据持久化}的问题
2017-01-09 11:03 717之前的博客 定时JOB,去请求数据,并找出最新数据持久 ... -
定时JOB,去请求数据,并找出最新数据持久化
2017-01-07 16:05 1151JOB: /** * 同步警情json 到t_ ... -
断言与异常的区别
2016-12-31 09:02 811断言与异常的区别 断言用在那些你知道绝对不会发生的事情上, ... -
(转)spring beans源码解读之--Bean的注解(annotation)
2017-01-10 17:51 866spring beans源码解读之--Bean的注解( ... -
往非sping管理的类里注入spring对象
2016-12-13 17:20 601http://stackoverflow.com/ques ... -
spring 注入static属性
2016-12-13 16:37 2646网上好多方法都是错误的,google之,发现 ... -
(转)Spring不支持依赖注入static静态变量
2016-12-13 14:34 524在springframework里,我们不能@Autowir ... -
(转)@Autowired、 @Qualifier 与 @Resource
2016-12-02 08:57 5931、@Autowired与@Resource都可以用来 ... -
注入与泛型的一点疑惑
2016-12-01 08:48 428qualifier 会直接注入 commonDao ,不会是 ... -
(转)Spring事务传播特性的浅析——事务方法嵌套调用的迷茫 --深度好文
2016-11-24 14:23 554Spring事务传播机制回 ... -
(转)浅谈Spring事务传播特性、隔离级别
2016-11-18 09:38 569一、Propagation (事务的传播属性) Prop ...
相关推荐
在Java后端开发中,Spring框架提供了强大的事务管理能力,特别是在使用Spring Data JPA时,`@Transactional`注解使得事务处理变得简单易用。这个注解是Spring框架中的核心部分,它允许开发者声明性地控制事务边界,...
在Spring框架中,`@Transactional`注解是用于标记事务管理的重要工具,它使得开发者能够方便地在代码中声明式地控制事务的边界。本文将深入解析`@Transactional`的事务回滚机制,并通过实例来详细讲解其工作原理,...
spring事务管理注解jar,spring-tx-3.2.4.RELEASE.jar,导入项目即可
在Spring框架中,`@Transactional`注解是一个强大的工具,用于声明式地管理事务。它使得开发者无需显式地在代码中控制事务的开始、提交和回滚,从而提高了代码的可读性和可维护性。下面我们将深入探讨`@...
Spring3引入了基于注解的事务管理,极大地简化了事务配置,使得开发者可以在方法级别声明事务边界,这就是`@Transactional`注解的用处。本文将深入探讨这个注解以及如何在Spring3中有效地使用它。 `@Transactional`...
在Spring框架中,事务管理是实现企业级应用稳定性和数据一致性的重要组成部分。Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。本文将重点介绍基于`@Transactional`注解的声明式事务管理。 ...
浅谈Spring中@Transactional事务回滚及示例 @Transactional是Spring Framework中的一种事务管理机制,用于管理数据库事务。它可以使得数据库操作更加安全和可靠。本文将详细介绍@Transactional的使用场景、checked...
2. 默认回滚机制:Spring 基于注解的声明式事物 @Transactional 默认情况下只会对运行期异常(java.lang.RuntimeException 及其子类)和 Error 进行回滚。 3. 数据库引擎支持:数据库引擎要支持事务,使用 InnoDB。 ...
"Spring声明式事务@Transactional知识点分享" 在 Spring 框架中,@Transactional 注解是实现声明式事务的关键。通过 @Transactional 注解,可以指定事务的传播行为、隔离级别、读写控制等属性。 首先,@...
@Transactional实现原理.txt
"Spring @Transactional 无效的解决方案" Spring框架中的@Transactional注解是用来实现事务管理的,但是有时候我们可能会遇到@Transactional注解无效的情况。在这篇文章中,我们将 introducethe 解决方案,并通过...
如果是 checked 异常,可以在 @Transactional 注解上指定 rollbackFor 属性,例如 @Transactional(rollbackFor=Exception.class)。 3. 确认数据库引擎是否支持事务。如果是 MySQL,需要使用支持事务的引擎,例如 ...
关于spring中@Transactional注解传播属性原理的实验 具体方法: 主体形式:a方法调用b方法 a插入数据“one” b插入数据“two” a、b方法都可以有不同的传播级别或者不加事务注解(none): required(rd), required_...
【Spring的@Transactional注解用法解读】 事务管理是企业级应用程序中的关键部分,它确保了在发生异常时数据的一致性。Spring框架提供了一种统一的方式来处理事务管理,包括对不同事务API(如JTA、JDBC、Hibernate...
深入学习Spring Boot排查 @Transactional 引起的 NullPointerException问题 在 Spring Boot 应用程序中,@Transactional 注解是非常常用的,它能够帮助我们管理事务,使得数据库操作更加可靠和安全。然而,在某些...
本教程将深入探讨如何在Spring中实现自定义事务管理器、编程式事务处理以及声明式事务`@Transactional`的使用。 首先,让我们了解事务管理的基本概念。事务是一组数据库操作,这些操作要么全部执行,要么全部回滚,...
在Spring框架中,`@Transactional`注解是事务管理的核心组件,它允许开发者在方法级别声明事务边界。本文将深入探讨这个注解的工作原理、如何配置以及如何在遇到异常时触发事务回滚。 首先,`@Transactional`是...
在Java编程中,`@Transactional`注解是Spring框架提供的一种事务管理机制,它使得开发者能够在方法级别方便地声明事务边界。然而,在某些特定情况下,`@Transactional`可能会失效,导致事务无法正常工作。以下是一些...
在Spring框架中,`@Transactional` 和 `@Async` 是两个非常重要的注解,它们分别用于声明事务管理和异步执行。然而,当这两个注解同时出现在一个方法上时,可能会引发一些复杂的问题,特别是在存在循环依赖的情况下...
Spring 框架中 @Transactional 注解的工作原理分析 在 Spring 框架中,@Transactional 注解是一个非常重要的概念,经常用于数据库操作。那么,@Transactional 注解是如何工作的呢?让我们深入源码分析。 首先,从 ...