org.springframework.beans.factory.NoSuchBeanDefinitionException

1. 问题描述

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxxxxx': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.xx.common.localcache.GuavaCacheManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}

如果你在代码中用到jar中的类, 如

@Resource
    private GuavaCacheManager guavaCacheManager;

 

2.解决方法

很显然 这个GuavaCacheManager无法被spring注入 因为并没有纳入spring管理,就是没有使用<bean id="xxx">或者@Service、@Compent扫描注入

所以需要 new一下。

如果jar中有spring配置文件,如jar根目录下有/spring/a.xml

那么 在web.xml中把这个xml扫描就行了

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:/applicationContext.xml,
            classpath*:/spring/*.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

 

posted @ 2017-11-08 19:47  fangfan  阅读(220)  评论(0编辑  收藏  举报