springMVC @autowired 注入失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springMVC @autowired 注入失败相关的知识,希望对你有一定的参考价值。

项目中有一个service在两个类中都用@autowired注解了,其中有一个成功注入了,而另外一个注入失败了,请问这是什么情况?

expected at least 1 bean which qualifies as autowire candidate for this dependency.
项目找不到你要自动注入的UserService.你看看你的扫描配置,对于需要扫描的package对了,应该是您的UserService所在的package不在扫面范围的package.
参考技术A 可能你的一个类是spring管理的, 而另外一个类不是spring管理的。。追问

嗯!好的!谢谢!但是我设置的是以包为单位进行扫描的,然后就不大清楚这是为什么了??也有可能是我设置的不对吧!

本回答被提问者采纳

@Autowired自动注入失败

新手注意的问题

package cn.ryq.web.controller;

import cn.ryq.domain.company.Company;
import cn.ryq.service.company.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.Date;
import java.util.List;

@Controller
@RequestMapping("/system/company")
public class CompanyController
@Autowired
public CompanyService companyService;

@RequestMapping("/list.do")
public ModelAndView list()
List<Company> list = companyService.findAll();
ModelAndView mv= new ModelAndView();
mv.addObject("list",list );
mv.setViewName("company/company-list");
return mv;


在确保ApplicationContext-service.xml,有扫包(可以通过右边的小叶子图标来查看是否有扫到包)CompanyController控制器中有@Controller,再检查web.xml的配置,
一般情况下我们都是用多个模块去完成一个项目,那么web.xml下就如下配置,
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext-*.xml</param-value>
</context-param>
加载配置文件的路径加*,让web可以扫到整个项目的配置文件!

以上是关于springMVC @autowired 注入失败的主要内容,如果未能解决你的问题,请参考以下文章

static类型autowired 注入失败

Intellij ideaspring中@Autowired注入失败

SSM @Autowired注入失败

spring autowired怎么按照name注入

记录一次springboot+mybatisplus项目@Autowired依赖注入失败的问题

Injection of autowired dependencies failed; autowire 自动注入失败,测试类已初始化过了Spring容器。