この質問は少し奇妙に思えるかもしれません。静的メソッドを持つUtilityクラスで使用したいサービスがあるとします。サービスはSpring Beanなので、当然私はsetterと(@Autowired)を使って自分のユーティリティクラスに注入します。 春の文書で言及されているように、すべてのBeanはBeanコンテキスト内で静的です。したがって、クラスにBeanを挿入する場合は、「静的」修飾子を使用する必要はありません。以下を参照してください:注入されたBeanを静的メソッドで使用する正しい方法は何ですか?
public class JustAClass{
private Service service;
public void aMethod(){
service.doSomething(....);
}
@Autowired
public void setService(Service service){
this.service = service;
}
}
今(静的メソッドでサービスを使用して)私が最初に言及したものに戻って:
public class JustAClass{
private static Service service;
public static void aMethod(){
service.doSomething(....);
}
@Autowired
public void setService(Service service){
this.service = service;
}
}
サービスが静的であるものの
が、私はその定義の後ろに静的に置くことを余儀なくしています。これは私には直感的ではありません。これは間違っていますか?それとも良い方法ですか? ありがとう
を注入する「コンポーネント」として、このクラスを宣言する必要があること
を注意、私のための作品! – Kaunteya
これは定期的に行われるものですか?あるいは、これらの状況で通常使用される別のアプローチがありますか? –