@Repository后面为studentDao,@Resource后面不加东西为什么能正常运行?

@Repository后面为studentDao,@Resource后面不加东西为什么能正常运行?

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

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

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

http://img1.sycdn.imooc.com//climg/5f5704170919c0dd19201032.jpg为什么在StudentDaoImpl类的@Repository注解后面的名字为studentDao的情况下,如果Test1类里的@Resource注解后面的名字为studentDao或者注释掉@Resource注解后面的东西,都可以正常运行;但是如果@Resource注解后面的名字与studentDao不一样,运行时就出错?

正在回答

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

5回答

同学你好,为同学这种不断钻研的精神点赞,很棒呐!

2、这里同学所指的异常是指如下这样吗?

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘XXX’

如果是,这是注入bean异常,出现这个异常就是找不到对应的JavaBean了

注:@Repository("Bean的名称")用来定义DAO层Bean

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


提问者 电磁护盾 2020-09-08 12:45:30

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

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

经过不断测试,我发现原因了了,原来是因为spring.xml中的配置目标类的作用应该是与StudentDaoImpl类中的@Repository注解的作用是相同的。               即使把spring.xml中的配置目标类注释掉吗,只要@Repository和@Resource后面的名字相同,或者这两个注解后面都不加东西,程序也能正常运行。但是@Repository注解后面加名字,@Resource注解后面不加名字,能正常运行;@Repository后面不加名字,@Resource注解后面加名字运行就这个BeanCreationException异常。

提问者 电磁护盾 2020-09-08 12:33:10

http://img1.sycdn.imooc.com//climg/5f5708ea09fdde3605350212.jpghttp://img1.sycdn.imooc.com//climg/5f5708ff0925db9f08900867.jpg

还有一种情况就是@Repository后面不加东西时,@Resource后面的名为studentDao,运行正常。   但是之前@Repository后面不加东西时,@Resource后面的名为studentDao1,运行出现异常。  这似乎又说明了与spring.xml中的<bean>标签的id名字studentDao有关

提问者 电磁护盾 2020-09-08 12:24:52

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

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

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

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

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

http://img1.sycdn.imooc.com//climg/5f5706e20928d6bb09490863.jpg又实验了其他情况。    当@Repository后面的名为studentDao1时,@Resource后面不加东西,运行正常;  @Repository和@Resource后面都不加东西时,运行正常;  @Repository后面不加东西时,@Resource后面的名为studentDao1,运行出现异常。

  • 提问者 电磁护盾 #1
    @Repository和@Resource后面的名字都为studentDao1时,运行也正常
    2020-09-08 12:26:19
提问者 电磁护盾 2020-09-08 12:18:31

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

好像跟xml中的<bean>标签的id的名字studentDao无关

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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