我希望使用Spring的事务管理功能来实现事务。但我不确定哪个更好(AOP vs @Transactional)。这两个特性都能正常工作吗?在开发效率方面有什么区别吗?
(补充)这里的AOP是指“使用AspectJ而不明确使用@Transactional注释”
(补充)我想知道注释配置和基于XML的配置的区别
我希望使用Spring的事务管理功能来实现事务。但我不确定哪个更好(AOP vs @Transactional)。这两个特性都能正常工作吗?在开发效率方面有什么区别吗?
(补充)这里的AOP是指“使用AspectJ而不明确使用@Transactional注释”
(补充)我想知道注释配置和基于XML的配置的区别
优点:
缺点:
@Transactional
Spring注释优点:
缺点:
这个讨论让我想起了JPA注释与JPA XML配置。使用基于XML的JPA配置,实体更加“干净”,但分离是否值得努力呢?或者甚至,分离是否有害(通过@Entity注释打开一个Java源文件,立即知道该类是EJB非常好)?实际上,我觉得大多数开发人员选择使用JPA注释。虽然在这种情况下,不像@Transactional
那样,jpa注释是一个标准,这可能有助于缓解一些担忧。
也就是说,在我们使用Spring的AOP配置来注释Struts2(webwork)拦截器以允许每个请求一个事务的项目中,这个方法运作良好。在这种情况下,我们并没有真正担心服务层或其他地方的事务边界——一切都已经参与到一个事务中,因为视图在拦截器关闭事务之前呈现,所以没有必要应用OpenSession/EntityManagerInView
解决方案。
@Transactional
注解使用 Spring AOP 实现事务管理。你能否澄清一下你的问题? - LaurentG@Transactional
进行比较? - Lion