@Service
public class UserService {
@Autowired
private UserDao userDao;
@Transactional
public void transfer(String fromUser, String toUser, int amount) {
User from = userDao.findByUsername(fromUser);
User to = userDao.findByUsername(toUser);
from.setBalance(from.getBalance() - amount);
to.setBalance(to.getBalance() + amount);
userDao.update(from);
userDao.update(to);
}
}
<bean id="userDao" class="com.example.dao.UserDao" />
<bean id="userService" class="com.example.service.UserService">
<property name="userDao" ref="userDao" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />