私のプログラムには次のコードがあります.Mavenと統合した後、SonarQube 5をコード品質チェックに使用しています。SONARの不具合について囲みメソッドを静的にするか、このセットを削除する
しかし、Sonarは囲みメソッドを静的にするか、このセットを削除するよう求めています。このメソッドはsetApplicationContextです。
このエラーを取り除くには?なぜこのエラーが来るのですか?
public class SharedContext implements ApplicationContextAware {
public static final String REPORT_ENGINE_FACTORY = "reportEngineFactory";
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SharedContext.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public Object getBean(String name) {
return applicationContext.getBean(name);
} }
いくつかのコンテキストを追加するには、静的でないsetApplicationContextメソッドがあると見なす開発者は、アプリケーションのすべてのインスタンスではなく、そのインスタンスのアプリケーションコンテキストのみを変更すると考えます。 – SJuan76
静的にすることはできません。 ApplicationContextAwareの契約に違反するためです – anonymouse