最新版本(4.8.0.9441)中引入的SonarJava分析器除其他规则外还使用s3749规则(Spring组件的成员应为“ @Autowired”)。事实证明,除磁场注入外,SONAR完全排除了其他自动接线模式。 e。构造函数/设置器@Autowired不会阻止此规则失败。这背后有什么根据吗?
最佳答案
看起来是错误的规则。
该方法还应该检查@Component
private static boolean isSpringComponent(SymbolMetadata clazzMeta) {
return clazzMeta.isAnnotatedWith("org.springframework.stereotype.Controller")
|| clazzMeta.isAnnotatedWith("org.springframework.stereotype.Service")
|| clazzMeta.isAnnotatedWith("org.springframework.stereotype.Repository");
}
也可能存在带有
@Value("${some.property}"
等注释的字段的情况。