「spring」Spring面试题:SpringBoot开发自定义starter
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
Spring面试题:SpringBoot开发自定义starter
什么是starterStarter可以理解为一个可拔插式的插件 , 提供一系列便利的依赖描述符 , 您可以获得所需的所有Spring和相关技术的一站式服务 。 应用程序只需要在maven中引入starter依赖 , SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置 。 用一句话描述 , 就是springboot的场景启动器 。
下面是Spring官方提供的部分starter , 全部的请参考官网:
官方starter
开始自定义starter前看看Springboot的AutoConfiguration机制 。
Spring boot的AutoConfiguration机制标记一个应用为Springboot应用 , 需要一个SpringBootApplication注解 , 下面是一个标准的spring boot启动程序 。
SpringBootApplication
SpringBootApplication注解又被一个EnableAutoConfiguration注解 , EnableAutoConfiguration注解就是自动加载配置的关键 。
SpringBootApplication注解
EnableAutoConfiguration是一个组合注解 , 用Import把AutoConfigurationImportSelector导入容器中 , springboot启动的时候会加载所有的selector并执行selectImports方法 , 这个方法会加载META-INF/spring.factories中配置的EnableAutoConfiguration , 从而加载自动配置 。
EnableAutoConfiguration
自定义Starter1、创建一个工程id-spring-boot-starter , 在pom文件中添加以下依赖 , 我们自定义的starter一般以xxx-spring-boot_starter命名 。
添加依赖
2、定义一个映射配置新的的类IDProperties , 添加注解ConfigurationProperties(prefix = \"id\") , 我们的配置文件以id开头 , 比如id.mathine-id=110
IDProperties
3、创建一个服务IDService , 构造函数接收IDProperties , 具体代码
IDService
4、创建Configuration类IDConfiguration , 添加注解Configuration和EnableConfigurationProperties , 把当前类设置成配置类 , 并且注入IDProperties 。
IDConfiguration
5、重要的一步 , 在resources目录下创建META-INF目录 , 并添加文件spring.factories 。 在这个文件中配置EnableAutoConfiguration , 具体如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.idspringbootstarter.IDConfiguration
测试自定义的Starter1、创建一个模块 , 添加刚才开发好的依赖
推荐阅读
- 『spring』Java面试题:Spring如何解决的循环依赖
- Java:Java JVM常见面试题及答案:类加载器篇
- #微信#Java全国统一卷之SpringMVC
- 『Java』Java JVM常见面试题:JVM调优案例
- 「Java」Java面试题-遍历中从List中删除一个元素
- 「jvm」JVM面试题扩展:Java代码在JVM中的执行流程
- 『Java』失业2个月,面试屡败,宅家钻研半个月面试题,顺利拿offerJava岗
- #Java#学透这份300页的2020最新java面试题及答案,让你成功定位阿里P8
- 『架构师公社』你对Spring框架的认识有哪些?
- 「奔跑的长腿蟹」怎么保证自己获胜,网友秒答,腾讯面试题:100只弓箭你和对手共用