expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.spring

基于maven的ssm项目 运行报错

[http-apr-8089-exec-1] ERROR [org.springframework.web.servlet.FrameworkServlet.initServletBean] - Context initialization failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productController': Unsatisfied dependency expressed through field 'productService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.yfy.service.ProductService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:586) ~[spring-beans-5.0.2.RELEASE.jar:5.0.2.RELEASE]
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91) ~[spring-beans-5.0.2.RELEASE.jar:5.0.2.RELEASE]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372) ~[spring-beans-5.0.2.RELEASE.jar:5.0.2.RELEASE]

报错注入失败,解决方法,先确认扫描配置

service层的applicationContext.xml配置

<context:component-scan base-package="com.yfy.service"></context:component-scan>

确认web.xml正确

全局参数 指定配置文件的路径
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:spring/applicationContext-*.xml</param-value>
</context-param>

由于项目是分模块的,web层 service层 dao层分了三个子模块,每个子模块的配置都在相应的spring文件夹中,所以要用classpath*,而不是classpath,楼主就是写了classpath捣腾了好久。

classpath和classpath*区别:
classpath:加载本项目下的指定目录的配置文件
classpath*: 加载本项目下和本项目所依赖的所有项目的指定目录下的配置文件

详细可参考   https://www.cnblogs.com/EasonJim/p/6709314.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值