最新版本(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}"等注释的字段的情况。

07-26 02:50