接口 TransactionManagementConfigurer

    • 方法详细资料

      • annotationDrivenTransactionManager

        PlatformTransactionManager annotationDrivenTransactionManager()
        Return the default transaction manager bean to use for annotation-driven database transaction management, i.e. when processing @Transactional methods.

        There are two basic approaches to implementing this method:

        1. Implement the method and annotate it with @Bean

        In this case, the implementing @Configuration class implements this method, marks it with @Bean and configures and returns the transaction manager directly within the method body:
         @Bean
         @Override
         public PlatformTransactionManager annotationDrivenTransactionManager() {
             return new DataSourceTransactionManager(dataSource());
         }

        2. Implement the method without @Bean and delegate to another existing @Bean method

         @Bean
         public PlatformTransactionManager txManager() {
             return new DataSourceTransactionManager(dataSource());
         }
        
         @Override
         public PlatformTransactionManager annotationDrivenTransactionManager() {
             return txManager(); // reference the existing @Bean method above
         }
        If taking approach #2, be sure that only one of the methods is marked with @Bean!

        In either scenario #1 or #2, it is important that the PlatformTransactionManager instance is managed as a Spring bean within the container as all PlatformTransactionManager implementations take advantage of Spring lifecycle callbacks such as InitializingBean and BeanFactoryAware.