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

关于Bean的初始化和销毁

老师在单元测试的@Before和@After中似乎就已经分别进行了Bean的初始化和销毁(尤其是@After中的destroy()方法),而后面自己又配置了init-method和destroy-method来进行初始化和销毁。那么:

【问题一】

@Before和@After与init-method和destroy-method有什么关系呢?init-method和destroy-method的存在有什么单独的意义吗?

【问题二】

这是我的猜测:老师实际上是把获取context和destroy()方法写进了JUnit单元测试中,是不是我们也可以不需要@Before和@After来做什么而把获取context和destroy()方法分别放在init-method和destroy-method中?

提问者:Sean_Chou 2018-01-07 16:46

个回答

  • nuanchazy
    2018-01-07 21:58:58
    已采纳

    问题一:@Before和@After是注解。是分别在单元测试类执行之前和之后执行的。定义的方法是用于初始化applicationContext和销毁applicationContext的,与init-method和destroy-method没有直接关系。在配置文件中配置的init-method和destroy-method方法,是配置在<bean>标签中的,是针对具体的bean的初始化和销毁。

    问题二:若是没有在单元测试之前初始化applicationContext,则就不会有bean的存在,你怎么测试bean的init-method和destroy-method