spring getBean(String) No bean named '' is defined


类结构如

public interface Mybean{

}

@Service

 public class MybeanImpl implement Mybean{

 }

问题描述

    调用context.getBean(Mybean.Class) 方法正常,调用context.getBean("mybean") 方法报如下错误

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '' is defined


之前一般都用context.getBean(Class<T> c) 这种方法获取bean,Spring 会根据传入的Mybean这个接口定义的类

但是,如果用context.getBean(String) 方法是以名字去获取,我们这里定义的bean是 MybeanImpl ,默认命名

是 mybeanImpl ,所以 context.getBean("mybean")是获取不到的,需要用context.getBean("mybeanImpl ")



当出现org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'baseDao' is defined报错时,可以按照以下步骤进行排查: 1. 确认bean的定义:检查是否在Spring配置文件(如applicationContext.xml)中正确定义了名为'baseDao'的bean。确保定义了正确的bean名称和类路径。 2. 检查包扫描配置:如果使用了包扫描来自动扫描组件并注册为bean,确保'baseDao'所在的包在扫描范围内。可以检查Spring配置文件中<context:component-scan>标签或者@Configuration注解中的@ComponentScan注解。 3. 检查依赖注入:如果'baseDao'被其他bean所依赖,检查依赖注入的方式是否正确。可以使用@Autowired或者@Resource注解进行依赖注入,确保被注入的属性名称和bean名称一致。 4. 检查bean的作用域:如果'baseDao'的作用域设置为prototype,而不是默认的singleton,确保正确获取bean实例的方式。例如,在代码中使用ApplicationContext.getBean()方法而不是直接使用@Autowired注入。 5. 检查Spring配置文件加载:如果使用了多个Spring配置文件,确保配置文件正确加载。可以检查加载配置文件的方式,例如在web.xml中配置的contextConfigLocation参数。 6. 检查依赖是否存在:确保'baseDao'所依赖的其他bean已经正确定义和注入。如果依赖的bean未正确定义或者名称错误,也会导致NoSuchBeanDefinitionException异常。 以上是一些常见的检查步骤,可以根据具体情况逐步排查,以找到引起该异常的原因并解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值