SonarQube没有为@Service看到@RequiredArgsConstructor,有什么建议吗?

时间:2019-01-18 09:16:28

标签: java spring-boot sonarqube lombok

对于我所有的@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
}

2 个答案:

答案 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版本中修复的:

https://jira.sonarsource.com/browse/SONARJAVA-3330