问答详情
源自:3-3 Spring Bean装配之Aware接口

为什么我的setApplicationContext方法在初始化的时候没有被调用啊?

public class TestImp implements ApplicationContextAware{


public void init(){

System.out.println("-----init-----");

}


@Override

public void setApplicationContext(ApplicationContext arg0)

throws BeansException {

System.out.println("ssss");

}

}

配置肯定是对的 可以执行初始化的方法 也成功获得了bean的对象 就是不执行setApplicationContext方法  help~~


提问者:Cle_de_Peau_Beaute 2016-07-15 22:07

个回答

  • 蓝黑Frizen
    2017-08-30 23:55:10

    我也碰到了这个问题

    用DefaultListableBeanFactory实现的容器实例化对象时不会调用ApplicationContextAware方法

    改用ClassPathXmlApplicationContext实现的容器则没问题。

    不知道为何Spring提供两种容器的实现类,功能看起来差不多。

  • IT界小嫩草一枚
    2016-12-01 23:00:05

    看log

  • withyou王杰
    2016-08-28 23:27:45

    看你检查一下你bean的class的地址是否正确,和方法里调用的ID是否正确

    如果正确不会有错

  • 萌萌哒猫头鹰
    2016-07-17 22:33:19

    如果bean被正常初始化一定会执行setApplicationContext的方法。

    给的信息太少了,也没看到其余的类和xml是怎么写的。