Как объявить бин Transaction весной в аннотации на основе классов? - PullRequest
0 голосов
/ 06 февраля 2019

Я объявил bean-компонент для Transaction в моем классе Config.java следующим образом:

@Bean
    public PlatformTransactionManager txManager() {
        return new DataSourceTransactionManager(dataSource());
    }

 @Bean
    public DriverManagerDataSource dataSource() {
        DriverManagerDataSource dataSource = new 
      DriverManagerDataSource();

   dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
        dataSource.setUrl("jdbc:oracle:thin:@192.168.1.5:1521:DCGCDB");
        dataSource.setUsername("OWNER");
        dataSource.setPassword("OWNER");

        return dataSource;
    }

, но для xml я увидел:

<context:annotation-config/>

<tx:annotation-driven  transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"></property>
</bean>

Это то же самоеили мне не хватает чего-то в моей аннотации на основе класса?

В моем pom.xml для транзакции я объявил:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>

1 Ответ

0 голосов
/ 06 февраля 2019

у вас есть конфигурация аннотации и конфиг xml?Я бы посоветовал НЕ делать этого, выберите одно из двух.Кроме того, вы настраиваете два диспетчера транзакций (TransactionManager и TxManager).Удалите объявление txManager, так как вы собираетесь использовать транзакционный (это тот, который будет поддерживать аннотированные методы @Transactional)

дополнительную информацию можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...