问答详情
源自:4-5 Spring Bean装配之基于Java的容器注解说明——@Bean

有2个问题需要解答

1.为什么没有执行destroy方法?
2.为什么我getBean("BeanImplB")他会调用BeanImplA类的init方法?

https://img2.mukewang.com/5cf7693600012fc403470242.jpg

https://img2.mukewang.com/5cf769360001a98202790204.jpg

https://img3.mukewang.com/5cf7693600018a7604380288.jpg

https://img.mukewang.com/5cf769360001654607490160.jpg

https://img1.mukewang.com/5cf769360001148c18370203.jpg


提问者:梦丶亦丶云 2019-06-05 15:01

个回答

  • forApril
    2019-07-19 16:06:31

    1. 看你一下你单元测试继承的类有没有after方法

    2. 在配置注释中如果将bean暴露给容器,那么在运行测试时会自动运行初始方法,所以A类的init方法被调用

  • 慕的地9539986
    2019-07-04 11:55:28

    @Test

    public void test() {

    ClassPathXmlApplicationContext a=new ClassPathXmlApplicationContext("xml/spring-beanannotation2.xml");

    a.start();

    BeanImplB ba=(BeanImplB) a.getBean("beanImplB");

    System.out.println(ba.getClass().getName());

    a.destroy();

    }

    你改成这样的话就会有destory方法,另外一个问题我也不知道

  • qq_慕侠2018299
    2019-06-21 16:48:33

    贴一下配置文件