@Autowired
private PlatformTransactionManager transactionManager;
public void performDatabaseOperations() {
TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());
try {
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
}
}
@Autowired
private SomeService someService;
@Transactional
public void performDatabaseOperations() {
someService.someMethod();
}
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="someMethod" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.example.SomeService.*(..))" />
</aop:config>
@Autowired
private PlatformTransactionManager transactionManager;
@Bean
public TransactionTemplate transactionTemplate() {
return new TransactionTemplate(transactionManager);
}
@Bean
public SomeService someService() {
return new SomeServiceImpl();
}