我在spring配置中定义了一个名为A的bean,并使用了spring的事务。显然,当我使用A的方法时,我们处于事务中。但是如果A是一个线程,那么在A start()时会发生什么,它是否仍处于事务中并且它与之前的条件相同?
答案 0 :(得分:1)
如果A扩展了Thread,并且A的start()
方法是事务性的,则Spring将像所有其他事务方法一样:当调用start()时,事务将启动(如果尚未启动),并且事务将以start()
返回的方式结束(如果它在调用start()
时开始)。
A的run()
方法将在任何Spring事务之外的另一个线程中执行。如果这个run()
方法调用另一个注入的Spring组件的事务方法,那么这个方法将在Spring事务中执行。