transactional放置在service层还是controller层

来源:互联网 发布:unity3d导入3dmax模型 编辑:程序博客网 时间:2024/06/05 20:14

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

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

原创粉丝点击