次のコードは春4でうまく動作しますが、getBean(FooService.class)がすでにロードされたBeanを返すのはなぜだろうかと思います。私は、Beanのロードの順序が保証されていないと考えました。つまり、nullのBeanを取得することが可能です。それはローディングターゲットが文字列ではないクラス(つまりオブジェクト)であるか、FooService Beanにプロトタイプのような特別なスコープがあるためですか?もしそうなら、getBean(クラス)とgetBean(オブジェクト)手始めにこのbeanがnullでない理由
public abstract class AbstractService implements ApplicationContextAware {
protected ApplicationContext applicationContext;
protected FooService fooService;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
@PostConstruct
protected void postConstruct() {
fooService = applicationContext.getBean(FooServiceImpl.class);
}
私はnullのオブジェクトを取得しないように春の感覚だと思います – XtremeBaumer
実際に私は* bean **が** null **と思うのですが、特定のbeanオブジェクトをロードするために* applicationContext *を使用します。春は必要ありません。 * @ Autowired *アノテーションは、Beanパラメータで使用することも、Beanがパラメータであるクラスコンストラクタや* set *メソッドでよりうまく使用することもできます。 –