とりわけユーティリティクラスの設計に際して、staticフィールドを@Autowired
の対象にしたい場面があります。この場合は__対象のstaticフィールドのsetterを非staticメソッドとして定義し、そのsetterに対して@Autowired
を付与してやればよい__ようです。以下がその例となります。
public class SampleClass {
private static StaticField staticField;
@Autowired
public void setStaticField(StaticField staticField) {
SampleClass.staticField = staticField;
}
}
ただし見るからにバッドノウハウなので、上記のようなことを頻繁に繰り返さねばならないようであれば、当該クラスをシングルトンにするなど、設計の見直しが必要になりそうです。もっともそう簡単に設計を見直したりできないのがシステム開発の現実なのですが(´・ω・`)