问答详情
源自:3-2 Spring Bean装配之Bean的生命周期

初始化和销毁是在IOC容器的启动和销毁过程中执行的,那和这个基类有什么关系?

初始化和销毁的方法是通过xml指定的,具体的方法在bean中。

按我的理解,启动,在加载xml后执行初始化方法,在关闭容器后执行销毁方法

那么这里讲这个基类又是做什么?

为什么要强调下基类的在before和after中的

context.start();

context.destroy();

这里是这两个在调用?

看了下代码,在这个继承的基类中重写了before方法和after方法

其中的before

@Before
public void before() {
    if (StringUtils.isEmpty(springXmlpath)) {
        springXmlpath = "classpath*:spring-*.xml";
    }
    try {
        context = new ClassPathXmlApplicationContext(springXmlpath.split("[,\\s]+"));
        context.start();
    } catch (BeansException e) {
        e.printStackTrace();
    }
}

context.start();看起来是启动容器,也就是说在执行这个test方法前,要先通过before启动容器(我一直以为直接super.getBean就好了)

提问者:未卜先知 2017-01-05 17:01

个回答

  • 慕瓜2373665
    2017-01-05 20:10:15

    作为使用junit作为单元测试,必须要实现Junit的准备工作,将spring的初始放置在Junit的before和after中才可以完整的实现Junit单元测试的所有环节。也就是说你使用Junit做测试必须独立出一个完善的环境而不是依赖项目本身的运行环境。要是还是不明白可以去学习下Junit的使用原理。希望可以帮到你