| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> SpringBoot排除不需要的自动配置类 -> 正文阅读 |
|
[Java知识库]SpringBoot排除不需要的自动配置类 |
目录 ????????1.1 使用@SpringBootApplication注解 ????????1.2 使用@EnableAutoConfiguration注解 ????????1.3 在properties、yml等配置文件中添加排除项 ????????2.2 使用@Import注解,在配置类上手动导入 ????????3.1 @SpringBootApplication注解: ????????3.2 @EnableAutoConfiguration注解 ? ? ? ? 3.3 AutoConfigurationImportSelector 一、排除自动配置类的方式????????1.1 使用@SpringBootApplication注解在启动类上使用@SpringBootApplication注解的exclude或者excludeName属性
????????1.2 使用@EnableAutoConfiguration注解在启动类或配置类上使用@EnableAutoConfiguration注解的exclude或者excludeName属性 注意: ? ? ? ? 不要多次配置@EnableAutoConfiguration注解,否则会被覆盖。 ? ? ? ? 如果配置了不生效,可以检查下是否在不同的配置类上重复配置了@EnableAutoConfiguration注解
????????1.3 在properties、yml等配置文件中添加排除项application.properties
application.yml
二、排除自动配置类之后,添加自动配置类的方式基础工程排除了自动配置类之后,如果某个项目需要启动自动配置类,那么有以下几种方式 ????????2.1?删除排除自动配置类的代码????????2.2 使用@Import注解,在配置类上手动导入以下代码,是在配置文件里配置了tfb.rabbitmq.enabled=true之后,开启RabbitMQ的自动配置
三、源码解析????????3.1 @SpringBootApplication注解:该注解的源码里,有@AliasFor注解, @AliasFor(annotation = EnableAutoConfiguration.class) Class<?>[] exclude() default {}; 意思是@SpringBootApplication注解的exclude属性,引用的是@EnableAutoConfiguration注解的同名属性exclude,即作用是一样的。 @AliasFor 注解 - 程序员自由之路 - 博客园 (cnblogs.com) ????????3.2 @EnableAutoConfiguration注解@EnableAutoConfiguration@Import(AutoConfigurationImportSelector.class) ? ? ? ? 3.3 AutoConfigurationImportSelector????????@EnableAutoConfiguration引入了AutoConfigurationImportSelector,该类的引入配置文件代码selectImports里写了如何排除指定类的方法 四、说明? ? ? ? 为什么不需要加载自动配置类呢?原因是基础工程提供了RabbitMQ的使用工具,但是各个项目可以根据需要启用不启用RabbitMQ。使用配置文件的属性开关方式,可以实现这个目的。 ? ? ? ? 但是,有个问题:如果项目不需要RabbitMQ,那么其实不需要引入RabbitMQ的相关依赖包,而这种方式,还是会把这些依赖包引入进去。 ? ? ? ? 更好的解决方式:将相关的代码整合到一个工程了,制作一个RabbitMQ的starter工程。如果项目需要使用RabbitMQ,那么就引入该starter工程就可以了。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 17:14:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |