关于org.springframework.beans.factory.NoSuchBeanDefinitionException

关于org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘studenta’ available的解决办法

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'studenta' available

这个报错可能是因为:

1. spring的xml配置文件Bean中的id和getBean的id不一致

spring的配置文件中:
在这里插入图片描述

而程序中
在这里插入图片描述
applicationContext.getBean(“studenta”, Student.class)中的是studenta而spring配置文件的id是student,不一致。

2. 是否是忘记加注解了

@Service
public class XxxServiceImpl implements StudentService {
 	@Resource
 	private StudentDao studentDao;
}

@Resource或@Autowired都可以(@Resource是jdk自带的)

3.如果添加了注解但是还是报这个错

例如:
在这里插入图片描述
配置文件:在这里插入图片描述
启动:
在这里插入图片描述
这样写会报错:
Exception in thread “main” org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘strudentImp’ available

这是因为没有扫描要注入的StrudentImp类所在的包(com.cn.domain和com.cn.service)。所以在spring配置文件应该做以下修改
在这里插入图片描述
也就是扫描要注入的类的包。

4. 包结构如下

在这里插入图片描述

为什么会报错org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘studenta’ available

在这里插入图片描述
beanDefinitionMap是一个map储存的是spring配置文件中声明的对象,对象可以通过Bean的id作为key来获取。如果获取的为空就抛出异常。
spring默认是单例模式,创建的对象储存在:
在这里插入图片描述
通过spring.xml配置写的id中写的作为key或 如果是通过注解注入,那么key就是类名首字母小写作为key
下面这个图片就是通过注解注入,key就是类名首字母小写。从而获取到的内容。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值