Sonarqube 为什么sonar认为用@Transactional注释非公共方法是错误的?

Sonarqube 为什么sonar认为用@Transactional注释非公共方法是错误的?,sonarqube,Sonarqube,我们使用aspect4J和编译时编织。用@Transactional注释私有方法是完全有效的,至少我是这么认为的。我很好奇为什么声纳有以下规则: 非公共方法不应为@Transactional 我的猜测是sonar肯定没有意识到有多种方式可以编织方面,Spring默认使用动态代理并不是唯一的方式 值得注意的是,这是一个非常关键的问题 两个问题: 1-sonar错误地认为用@Transactional注释私有方法是错误的吗? 2-如果他们错了,我如何向声纳团队提交错误 我们还面临着界面中的@Tran

我们使用aspect4J和编译时编织。用@Transactional注释私有方法是完全有效的,至少我是这么认为的。我很好奇为什么声纳有以下规则:

非公共方法不应为@Transactional

我的猜测是sonar肯定没有意识到有多种方式可以编织方面,Spring默认使用动态代理并不是唯一的方式

值得注意的是,这是一个非常关键的问题

两个问题: 1-sonar错误地认为用@Transactional注释私有方法是错误的吗?
2-如果他们错了,我如何向声纳团队提交错误

我们还面临着界面中的@Transactional问题,这似乎是一个误报:

将java插件升级到最新版本3.3修复了该问题

对于类的非公共方法,有处于活动状态的规范票证:


回答你的第二个问题,我想,他们的jira是该项目的主要缺陷跟踪系统。

我认为这两个系统都不能解决我的问题。这里我的主要观点是Sonar假设默认的spring行为和动态代理实现。这是个错误的假设。关于如何注入方面,无法知道运行时behvavior是什么。实际上是这一无效规则的延续。