版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
spring boot 中@Autowired注解无法自动注入的错误
在使用springboot main方法启动项目时遇到[@Autowdired]注解无法注入,网上查了很多资料也是一位网上的大神的一句话理通了思路:
异常信息:
异常信息:
Action:Consider defining a bean of type 'com.boot.app.service.bootService' in your configuration.
controller层:
@RestController
@Autowired
private BootService bootService;
@RequestMapping(value="/query",method=RequestMethod.POST)
public String queryByStatus() {
return "query";
}
}
发现注解均正常:
SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描!“Application类”是指SpringBoot项目入口类。这个类的位置很关键:如果Application类所在的包为:com.boot.app,则只会扫描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,则不会被扫描!即, 把Application类放到dao、service所在包的上级,com.boot.Application知道这一点非常关键
Application类:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}