基于Annotation的装配

本文探讨了Spring框架中使用@Repository注解时遇到的问题。通过对比手动定义Bean与使用<context:component-scan>自动扫描的区别,揭示了名称一致性对于自动装配的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Error creating bean with name ‘userController’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userService’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘userDao’ available

在学习基于Annotation的装配时候当使用Context命名空间,在配置文件中开启相应的注解处理器时分别定义每个实现类的Bean时,发现程序正常运行,但是使用<context:component-scan
base-package=“XXX” />进行扫包进行自动装配时发现报了上述的错误。
发现
发现没有可用的Bean,检查代码发现在写**@Repository注释的时候写的是
在这里插入图片描述
但是在写UserServiceImpl实现类调用UserDao中的方法的时候
在这里插入图片描述
发现名字不同,但是在没有使用自动扫包的
Bean**类的时候
在这里插入图片描述
发现程序可以正常的运行,这点暂时不知道为什么,萌新小白,知道的大佬可以在这留言(好像大佬也不会看到这个文章,哈哈)
猜测大概是因为class指定了路径过了吧。

最后把
在这里插入图片描述
改了回来,发现程序正常运行啦。
在指定扫包时候还是要确保写的注释的name都要相同啊!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值