对于我所有的@Component和@Service,我都使用
@RequiredArgsConstructor(onConstructor = @__(@Autowired)).
它使代码更整洁,可以正常工作。
但是SonarQube仅接受组件。服务类中的所有字段都存在严重问题:
”使用“ @Autowired”,“ @ Resource”,“ @ Inject”或“ “ @Value”,或将其删除。”
是否有解决方案或解决方法? 我不想禁用该规则,因为它有时会有所帮助。
我的代码:
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class fooService {
private final FooDAO fooDAO; // Annotate this member with "@Aurowired"...
// rest of the class
}
答案 0 :(得分:0)
要回答您的问题,您只需在SonarQube中禁用不需要的规则,即可完全根据您的需求进行定制。
从Spring v 4.3开始,如果只有一个构造函数,它甚至是隐式see Spring doc,甚至不需要放置@Autowired
注释。所以你只需要这个:
@Service
@RequiredArgsConstructor
public class FooService {
private final FooDAO fooDAO;
}
答案 1 :(得分:0)
这看起来像是在SonarJava 6.3版本中修复的: