Spring 我可以对多个applicationContext使用相同的@transaction吗?
我正在开发一个项目。因为我有很多应用程序上下文。 我需要对多个AppApplicationContext使用相同的事务。如果出现任何错误,我将从每个applicationContext回滚事务 例如: 我有一个applicationContext A和第二个applicationContext B。 从ApplicationContext C中,我需要更新A和B中的一些DB值。因此,我在ApplicationContext C类中启动一个@transaction,并调用A和B的方法 如果出现任何错误/异常,则我希望回滚bot ApplicationContext DB更改 例如:Spring 我可以对多个applicationContext使用相同的@transaction吗?,spring,spring-transactions,Spring,Spring Transactions,我正在开发一个项目。因为我有很多应用程序上下文。 我需要对多个AppApplicationContext使用相同的事务。如果出现任何错误,我将从每个applicationContext回滚事务 例如: 我有一个applicationContext A和第二个applicationContext B。 从ApplicationContext C中,我需要更新A和B中的一些DB值。因此,我在ApplicationContext C类中启动一个@transaction,并调用A和B的方法 如果出现任何
@service
Class C{
@Transactional(rollbackFor = Exception.class)
public MethodC(){
ApplicationConext a = applicationContextA.getBean(Adb.class);
ApplicationConext b = applicationContextA.getBean(bdb.class);
a.someChangeINDB();
b.someChangeINDB();
}
}
不,您不能这样做,因为这会导致问题。@M.Deinum有任何解决办法来实现这一点吗?为什么您甚至有多个应用程序上下文…我想管理业务/Dao bean。为什么您需要多个应用程序上下文来实现这一点。因为这只会使事情变得更复杂,而且你需要自己处理上下文(这会引入其他问题)。您使用上下文的事实可能还意味着您有多个bean、数据源等实例。