今天做一个项目采用的是传统架构,没有采用分布式,部署时出现了异常,信息是:
org.springframework.beans.factory.NoSuchBeanDefinitionException:No qualifying bean of type found for dependency
error creating bean with name 'xxx': cannot resolve refere 'xxx'
expected at least 1 bean which qualifies as autowire candidate for this dependency
Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
无法创建ItemService,因为找不到
首先检查ItemService的实现类上是否加了@Service注解,发现加了
@Service
public class ItemServiceImpl implements ItemService {
然后检查spring的配置文件是否有注解扫描器,发现有
<!--注解扫描器-->
<context:component-scan base-package="com.rui.service"/>
最后检查web.xml是否加载了spring容器,发现没有,于是添加代码
<!-- 加载spring容器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:com.rui/spring/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
错误原因找到了,在web.xml中仅配置了springmvc的前端控制器,没有加载spring容器。