SpringBoot 环境中注解对象失效(曾经的坑)
2018-02-01 10:31
513 查看
问题描述
@Config @component @Service @RestController
等注解失效
还原问题
待补全。。。问题的实质
@SpringBootApplication 注解详解简单来说,就是被 @SpringBootApplication 标注的对象内含 @ComponentScan 注解。如果 在 Application.java 的类中标注了@SpringBootApplication,那么将默认扫描 Application.java 所在包及其子包下的文件,并对 Bean 对象进行 “托管”,而没被扫描到的 Bean 对象,也就失效了。
解决方案
1.修改包结构
确保被@SpringBootApplication 标注的类文件在尽可能靠近”根包”的位置2.补全@ComponentScan
将所有 Bean 对象的包通过 @ComponentScan 指定Application.java 样例
@SpringBootApplication @ComponentScan({"org.xavier.main.XXX", "org.xavier.test.XXXX"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } // 扫描包含 org.xavier.main.XXX 及其子包 // 扫描包含 org.xavier.test.XXXX 及其子包
3.配置 .factories文件
按路径在项目 resources 目录下中创建 META-INF/spring.factories 文件spring.factories 样例
org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.xavier.web.config.XXX
factories 可用配置项传送门
相关文章推荐
- Spring 注解 new创建对象后失效
- 加入spring-boot后导致maven的profile多环境配置失效的问题解决
- 十五、Spring Boot 环境变量读取 和 属性对象的绑定
- Java类中@Profile注解 springboot切换不同环境配置
- 关于spring使用new对象时注解失效问题解决办法
- Spring Boot 环境变量读取 和 属性对象的绑定 RelaxedPropertyResolver
- Spring中使用事务搭建转账环境方法二 相对简便的注解方法 ——配置文件注入对象属性需要setter方法 注解方法,不需要生成setter方法
- springboot使用注解配置filter以及对象转换
- 24. Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
- (24)Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
- Spring Boot 环境变量读取 和 属性对象的绑定
- 24. Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
- spring-boot实战【05】:Spring Boo多环境配置及配置属性注入到对象
- Spring Boot 环境变量读取 和 属性对象的绑定
- springboot源码分析14-ApplicationContextInitializer原理Springboot中PropertySource注解多环境支持以及原理
- (24)Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
- Spring Boot 环境变量读取 和 属性对象的绑定
- 24. Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
- springboot 整合mybatis 基于注解开发 传入对象
- Spring中使用事务搭建转账环境方法二 相对简便的注解方法 ——配置文件注入对象属性需要setter方法 注解方法,不需要生成setter方法