关于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. 包结构如下
文章来源:https://www.toymoban.com/news/detail-638282.html
为什么会报错org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘studenta’ available
beanDefinitionMap是一个map储存的是spring配置文件中声明的对象,对象可以通过Bean的id作为key来获取。如果获取的为空就抛出异常。
spring默认是单例模式,创建的对象储存在:
通过spring.xml配置写的id中写的作为key或 如果是通过注解注入,那么key就是类名首字母小写作为key
下面这个图片就是通过注解注入,key就是类名首字母小写。从而获取到的内容。
文章来源地址https://www.toymoban.com/news/detail-638282.html
到了这里,关于关于org.springframework.beans.factory.NoSuchBeanDefinitionException的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!