下图中的id值orderService在哪里配置了呢?

下图中的id值orderService在哪里配置了呢?

在老师的代码里我并没有看到这个id值orderService在哪里注入属性了。但是我删除该id值运行就会报错,说明这个id值还是有用的,在哪里起到了什么作用呢?

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

正在回答

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

2回答

这个是在测试类里面用的,可以看一下下面的代码

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

下面的截图是源码中测试类所在的位置

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

祝学习愉快!

  • 慕数据4154996 提问者 #1
    可是Autowired不是按照类型进行注入的吗?并不是根据id进行注入的啊
    2018-09-19 16:28:09
  • 好帮手慕珊 回复 提问者 慕数据4154996 #2
    是按类型注入,是在注入时会去寻找类型为ProxyFactoryBean的bean,如果只找到一个对应类型的bean就会注入。如果有多个bean,还需要使用@Qualifier指定bean的id。bean也是需要定义id的,bean的id就是使用注解下面声明OrderService的引用orderService一致。的祝学习愉快!
    2018-09-19 18:37:04
  • 慕数据4154996 提问者 回复 好帮手慕珊 #3
    懂了 关键就是用@Autowired注解的属性其id的定义需要和其下面声明的引用的变量名相同,是吧?
    2018-09-19 19:02:09
好帮手慕珊 2018-09-19 11:00:25

此处就是为ProxyFactoryBean配置了一个id为orderService的bean,在<bean>标签中使用<property>来完成属性的设置。ProxyFactoryBean是一个spring的jar包中提供的代理类,在代理类中进行拦截对象和拦截器的关联,然后才能执行相关操作,所以它是不能删掉的,删掉了代码就没法执行了。祝学习愉快!

  • 提问者 慕数据4154996 #1
    “此处就是为ProxyFactoryBean配置了一个id为orderService的bean”,老师您没看清楚我的问题。给bean配置id不就是为了在某个地方引用这个bean来给属性注入值吗?可是这个id并没有在其他地方被用到啊?但是删了这个id属性的确是报错的。这都是为什么呢?
    2018-09-19 14:54:32
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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