实例化 Spring 组件时如何避免 SonarLint UnusedPrivateMethod?

How to avoid SonarLint UnusedPrivateMethod when instantiating Spring components?

在基本的 Spring 启动应用程序中,我有这个组件:

@Component
public class TheComponent {
    public String getKey() {return "value";}
}

被服务使用。如果我这样设计我的服务:

@Service
public class TheService { 

    @Autowired
    private TheComponent theComponent;

    private final String keyValue = theComponent.getKey();

    private TheService() {}
}

然后 Spring 无法构建引导,因为 theComponent 触发 NullPointerException

如果我这样设计:

@Service
public class TheService {

    private String keyValue;

    private TheService(TheComponent theComponent) {
        keyValue = theComponent.getKey();
    }
}

然后 SonarLint 告诉我应该 删除这个未使用的私有 "TheService" 构造函数 .

是否有使用私有构造函数同时适用于 Spring 和 SonarLint 的解决方案?

用以下方式注释您的构造函数:

@SuppressWarnings("unused")

您也可以在 class 级别使用它来抑制所有警告。