关于SpringBoot bean无法注入的问题(与文件包位置有关)
来源:互联网 发布:python assert 用法 编辑:程序博客网 时间:2024/06/07 15:58
问题场景描述
整个项目通过Maven构建,大致结构如下:
- 核心Spring框架一个module
spring-boot-base
- service和dao一个module
server-core
- 提供系统后台数据管理一个module
server-platform-app
- 给移动端提供rest数据接口一个module
server-mobile-api
其中server-platform-app
与server-mobile-api
分别是两个springboot搭建的独立服务端。server-platform-app
大致业务开发接近尾声,然后独立出另一个web端server-mobile-api
用于给mobile端提供数据。可就在搭建完成之后遇到了奇葩问题!
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [io.github.gefangshuai.rtat.service.RestaurantService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533) ... 24 more
总是提示无法注入Service或者Dao中的Bean!
解决分析
后来经研究发现,SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描!
“Application类”是指SpringBoot项目入口类。这个类的位置很关键:
如果Application类所在的包为:
io.github.gefangshuai.app
,则只会扫描io.github.gefangshuai.app
包及其所有子包,如果service或dao所在包不在io.github.gefangshuai.app
及其子包下,则不会被扫描!
知道这一点非常关键,不知道Spring文档里有没有给出说明,如果不知道还真是无从解决。
3 1
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- SpringBoot bean无法注入的问题
- SpringBoot bean无法注入
- CXF中使用Autowired注解无法注入bean的有关问题
- springboot无法注入JpaRepository的问题
- springboot websocket 解决不能注入bean问题
- 关于mediaController位置调整的有关问题
- 关于TestNG无法采用Spring注入bean的问题解决
- springboot 在@Autowire无法注入bean时的临时处理办法
- 解决spring-boot 中 bean无法注入的问题
- Spring+Quartz 定时任务无法自动注入bean的问题
- spring无法注入Bean的问题及解决
- 解决spring boot websocket无法注入bean的问题
- 解决spring boot websocket无法注入bean的问题
- <html5+css3+js>jquery基础
- ForDemo
- 自动化_loadrunner_从初级到高级视频 36集
- RPM安装与卸载MySQL-5.6.27-1.linux*.x86_64.rpm*
- iOS 语言本地化(中文显示)
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)
- Web压力测试工具Siege
- H5交互开发培训后效果
- js选择a问题
- for语句的特点
- 操作符重载
- UIPanel
- 菜鸟学习中-end tag "</html:form" is unbalanced
- mysql属性与java类型对照表