两个注解,请解释一下

两个注解,请解释一下


一下两个注解,干什么用的,语法要求,依赖什么jar包,请老师详细解释一下

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,之所以让测试运行与spring测试环境,是因为我们要用到之前注入到spring中的对象。

http://img1.sycdn.imooc.com//climg/5e105d180979462a11210378.jpg

http://img1.sycdn.imooc.com//climg/5e105ebc09cbdef505150168.jpg

同学知道,用@Resource的话,需要这个bean对象已经交给spring了

,要是我们直接new的话,也不用让这个测试类至于spring环境中了。

如果我们想用之前注入到spring中的对象,那么就必须要让这个测试运行与spring环境了。

而之前controller,service层等调用dao等为啥不用写呢?因为,我们同样用@controller 以及@service 等把controller,service层也交给spring管理了。

其中这一步的作用相当于之前课程中的这种代码:

http://img1.sycdn.imooc.com//climg/5e105e050988cde407890343.jpg

2、或者,如果你测试的类中,不需要用到注入到spring中的类,也可以不用写这个注解。

3、如果同学还是不理解,可以自己找一个之前的例子,贴给老师,老师来解释一下。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕阿莹 2020-01-04 15:48:46

同学你好,

1、@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境

2、@ContextConfiguration("classpath:applicationContext.xml")用来加载applicationContext.xml

3、第一个注解固定写法就可以,第二个注解classpath后边写的是你的spring的相关配置文件。、他们都写在测试类的上边。

4、因为我们想要使用spring中已经注入的bean,但又没有交给spring管理,这样就无法直接使用注入到spring中的bean了。

而以上两个注解,就是为了可以使用spring中已经注入的bean。

5、他依赖的是是spring-test这个jar包,需要在pom.xml 中引入一下。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕沐8221787 #1
    1.让测试运行于Spring测试环境,这句话怎么理解,或者说这与前面课程的测试有什么区别吗? 2.为什么前面课程的测试不需要加载applicationContest.xml文件?
    2020-01-04 16:03:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师