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

回到顶部