私が持っている場合:
@Component
class Foo {
@Autowired
private Bar b; //where b is @Service
public Foo(){
//if i need to use b here, what do i need to do?
b.something(); // <-- b is null so it'll crash here
}
public void setB(Bar b){
this.b = b;
}
}
Spring docs を読むと、コンストラクター ベースのインジェクションよりもセッター ベースのインジェクション メソッドが推奨されることがわかりますが、上記の例では、現在のクラスのコンストラクター内で注入されたスプリング クラスを使用する必要があるため、コンストラクター ベースのインジェクションである必要がありますか?
もしそうなら、これはどのように見えるでしょうか?
@Component
class Foo {
private Bar b; //where b is @Service
@Autowired
public Foo(Bar b){
b.something(); // b won't be null now !
}
}