我已在 Config.java 类中将 Transaction 的 bean 声明为:
@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>
最佳答案
你有注释配置和xml配置吗?我建议不要这样做,选择两者之一。除此之外,您正在配置两个事务管理器(transactionManager 和 txManager)。删除 txManager 的声明,因为您要使用的是 transactionManager(这是将支持 @Transactional 带注释的方法)
更多信息可以找到here
关于java - 如何在基于类的注释中声明 Spring 中的 Transaction bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54546798/