Spring Boot不加@Transactional会开启事务吗?
如题,网上说Spring Boot默认开启事务,是不是即使不加@Transactional注解,框架也自动帮我们开启了事务,如果开启了,事务的隔离级别如何呢?另外实际生产环境什么时候需要用到事务呢,隔离级别该如何设置呢?
回答:
是的,在执行数据库写操作时 spring boot 框架一般会默认开启。
但是不加 @Transactional
的情况下,事务不好控制。
默认的隔离级别应该是 READ_COMMITTED
。
在生产环境中,只要涉及到写操作,都会涉及到事务,在生产环境中,所有涉及到写操作的方法上,都应该加上 @Transactional
,除非你很明确的知道自己在做什么。
例如
@Transactional // 就算是只写一次,也建议加上void wirte1() {
// write a table
}
// 多次写更应该加上,除非你知道自己在做什么
// 如果不加,出现几次写操作,框架就会自动打开几次事务。
@Transactional
void wirte1() {
// write a table
// write other table
}
隔离级别该如何设置,如果你对这个这个问题有疑问,那么建议不要做任何设置。
以上是 Spring Boot不加@Transactional会开启事务吗? 的全部内容, 来源链接: utcz.com/p/944662.html