org.springframework.beans.factory.NoSuchBeanDefinitionException解决的一些方法;

    xiaoxiao2025-09-10  52

    1.如果您使用注释进行配置,则可能会缺少cn.itcast.crm.service.BaseDictService实现的注释(@Service或@Component等)。

     

    2.如果您使用(仅)xml,您可能会错过BaseDictService实现的<bean>定义。 

     

    3.如果您使用注释并且实现注释正确,请检查扫描实现所在的包

    (检查各自组件的自动扫描组件<context:component-scan base-package = “XXXX”)

    或者(Spring自动扫描<context:annotation-config/>)

     

    4.代码有无错误:例子如下,

    BaseDictMapper在mapper文件下并在相关的mapper.xml进行相关配置,BaseDictService在service文件下并做了相关的spring配置文件做了对应的配置。Service实现具有相同申明方法的mapper接口(而spring并不能扫描到mapper文件夹下的接口和类),因此BeanFactory在Spring Context中没有找到bean的实例,最终导致Spring无法识别相应的bean  

    public interface BaseDictMapper { //根据类别代码查询数据 List<BaseDict> queryBaseDictByDictTypeCode(String dictTypeCode); }   public interface BaseDictService { //根据类别代码查询 List<BaseDict> queryBaseDictByDictTypeCode(String dictTypeCode); } public class BaseDictServiceImpl implements BaseDictMapper { //错误:应该实现为BaseDictService @Autowired private BaseDictMapper baseDictMapper; @Override public List<BaseDict> queryBaseDictByDictTypeCode(String dictTypeCode) { List<BaseDict> list = this.baseDictMapper.queryBaseDictByDictTypeCode(dictTypeCode); return list; } }

     

    下面是我是我写的是时候遇到的问题,在网上找了一圈后 还是没有什么头绪,最后有了那么一点灵感 才发现就是一个很小细节问题。。

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

     

    <bean id="PersonService" class="com.spring.service.impl.PersonServiceImpl"></bean>

    结果 就是,bean中id的值存在大小写的问题,和后面的没有对应。。

    最新回复(0)