项目的需求,看不到service层,而在controller层有些业务判断,如果不成立就需要抛出异常进行回滚。这个时候事务注解,就只能加在controller层。通常情况下我们都是在service层去使用@Transactional这一注解,来完成规定的注解。通常我们一般都会在加载spring容器之后,去扫描service注解,去加载我们的service bean,而在这一层同时我们也会去加载我们的数据源、数据管理器。最重要我们把事务的声明也放在这一层:<tx:annotation-driven transaction manager="transactionManager" />。

即只会扫描加载service层中的@Transactional而不会去找controller层中的声明,所以我们只要把事务定义声明放到对应的spring mvc应用上下文中机会起到作用。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐