Spring团队的建议是你在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。你当然可以在接口上使用 @Transactional 注解,但是这将只能当你设置了基于接口的代理时它才生效。因为注解是 不能继承 的,这就意味着如果你正在使用基于类的代理时,那么事务的设置将不能被基于类的代理所识别,而且对象也将不会被事务代理所包装。因此,请接受Spring团队的建议并且在具体的类上使用 @Transactional 注解。可以在类或者方法上使用,不推荐在接口上使用。
待续
Spring事务管理:为何避免在接口上使用@Transactional
Spring团队建议在具体类上使用@Transactional注解而非接口,因为注解不继承,基于类的代理无法识别接口上的事务配置。使用接口时需依赖基于接口的代理才能使事务管理生效。遵循这一指导,可以确保事务代理正确包装对象。
805

被折叠的 条评论
为什么被折叠?



