<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.10</version>
</dependency>
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
</bean>
<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="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.example.service.*.*(..))" />
</aop:config>
public interface UserService {
void createUser(User user);
void updateUser(User user);
void deleteUser(int userId);
}
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public void createUser(User user) {
userDao.createUser(user);
}
@Override
public void updateUser(User user) {
userDao.updateUser(user);
}
@Override
public void deleteUser(int userId) {
userDao.deleteUser(userId);
}
}
public interface UserDao {
void createUser(User user);
void updateUser(User user);
void deleteUser(int userId);
}
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void createUser(User user) {
}
@Override
public void updateUser(User user) {
}
@Override
public void deleteUser(int userId) {
}
}