为了账号安全,请及时绑定邮箱和手机立即绑定

关于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中?

正在回答

1 回答

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

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

2 回复 有任何疑惑可以回复我~
#1

Sean_Chou 提问者

非常感谢,是我给弄混淆了???
2018-01-07 回复 有任何疑惑可以回复我~
#2

慕哥9324120 回复 Sean_Chou 提问者

如果不在单元测试超类中实现Before/After方法.可以直接在测试类中获得上下文对象,然后通过上下文对象来获得Bean.然后调用上下文对象的start/close 方法来实现Bean的init 和destroy. 原理上跟Before/After一致.
2018-01-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Spring入门篇
  • 参与学习       268801    人
  • 解答问题       1026    个

为您带来IOC和AOP的基本概念及用法,为后续高级课程学习打下基础

进入课程

关于Bean的初始化和销毁

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号