最新版本(4.8.0.9441)中引入的SonarJava分析器规则s3749( Spring组件的成员应该是“@Autowired”)。事实证明,SONAR完全排除了其他自动装配模式,而不是场注入,i。即构造函数/ setter @Autowired不会阻止此规则失败。这背后有什么理由吗?
答案 0 :(得分:0)
看起来像是一个错误的规则。
该方法还应该检查@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}"
等注释的字段的情况。