Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 我可以对多个applicationContext使用相同的@transaction吗?_Spring_Spring Transactions - Fatal编程技术网

Spring 我可以对多个applicationContext使用相同的@transaction吗?

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的方法 如果出现任何

我正在开发一个项目。因为我有很多应用程序上下文。 我需要对多个AppApplicationContext使用相同的事务。如果出现任何错误,我将从每个applicationContext回滚事务

例如: 我有一个applicationContext A和第二个applicationContext B。 从ApplicationContext C中,我需要更新A和B中的一些DB值。因此,我在ApplicationContext C类中启动一个@transaction,并调用A和B的方法

如果出现任何错误/异常,则我希望回滚bot ApplicationContext DB更改

例如:

@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、数据源等实例。