@Transactional this点能调用
时间: 2023-10-19 19:35:35 浏览: 48
根据引用和引用的内容,@Transactional注解可以被应用于接口定义和接口方法、类定义和类的public方法上。然而,仅仅使用@Transactional注解并不足以开启事务行为,它只是一种元数据,需要被可以识别@Transactional注解并配置了适当事务行为的beans所使用。根据Spring团队的建议,应该在具体的类(或类的方法)上使用@Transactional注解,而不是在类所要实现的任何接口上使用。因为注解是不能继承的,所以如果在基于类的代理中使用基于接口的@Transactional注解将不会生效。因此,应该接受Spring团队的建议,并在具体的类上使用@Transactional注解。
根据引用的内容,@Transactional注解只能应用于public方法才能起效。这是因为在使用Spring AOP代理时,Spring会在目标方法执行之前和之后拦截调用TransactionInterceptor,而TransactionInterceptor会间接调用AbstractFallbackTransactionAttributeSource获取@Transactional注解的事务属性配置信息。因此,只有当@Transactional注解应用于public方法时,事务管理才能生效。
所以根据以上引用内容,在同一个类中,如果方法A没有@Transactional注解,而方法B有@Transactional注解,在方法A中调用方法B,事务是不会起作用的。因此,无法通过this点调用@Transactional注解。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Spring @Transactional 事务以及事务间调用完整解析,保你看完,反手就一个赞!](https://blog.csdn.net/java_zyq/article/details/107656653)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]