public class BankService {
private DataSource dataSource;
public BankService(DataSource dataSource) {
this.dataSource = dataSource;
}
public void withdrawMoney(String accountNumber, double amount) {
}
public void depositMoney(String accountNumber, double amount) {
}
}
@Bean
public DataSource dataSource() {
}
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Autowired
private BankService bankService;
@Transactional
public void processTransaction(String accountNumber, double amount) {
bankService.withdrawMoney(accountNumber, amount);
bankService.depositMoney(accountNumber, amount);
}