@PostConstruct
@PostConstruct注解的方法在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如数据字典之类的。
@Transactional
Transactional 注解只能用在public方法上,如果用在protected或者private的方法上,不会报错,但是该注解不会生效。
Transactional注解只能回滚非检查型异常,具体为RuntimeException及其子类。
使用rollbackFor属性来定义回滚的异常类型,使用propagation属性定义事务的传播行为。如:
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
回滚Exception类的异常,事务的传播行为支持当前事务,如果没有事务,那么会创建一个事务。
required 当前上下文没有事务调用,会生成一个事务;当前上下文有事务,加入当前事务
required_new 有:新建一个事务,彼此隔离;没有,新建一个事务,彼此隔离;没有,新建一个事
support:支持当前事务,当前上下文有事务,就会加入,没有。不管,不会建事务
not_support :不支持事务,有的话,挂起当前事务,就是自己执行不是事务
mandatory 支持当前事务,当前上下文必须要有事务,否则异常
never 无事务执行
nested 当前上下文没有事,新建一个事务,有事务会嵌套一个事务,主事务回滚他会回滚,他回滚不会影响主事务
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/245467.html