SpringBoot中如何自定义starter

简介: 自定义Spring Boot Starter通常包含两个模块:starter负责依赖管理,autoconfigure实现自动配置。前者引入后者。在autoconfigure中,通过@Configuration和@Bean定义配置类与Bean,并结合@Conditional条件注解控制Bean的创建;最后在META-INF/spring.factories(或Spring Boot 3的xxx.imports文件)中注册自动配置类全名,完成自动化配置。

首先,先说模块哈,自定义starter,我们通常会定义两个maven模块。一个是:xxx-spring-boot-starter ,这个模块主要负责管理依赖,最后项目中引入的就是这个模块。另一个是:xxx-spring-boot-autoconfigure,这个模块负责自动配置功能,所有的自动配置的核心代码,都定义在这个模块中。并在在starter模块中,还要引入autoconfigure这个模块的依赖。然后再来说核心的autoconfiqure模块的实现。

第一步呢,就是要根据具体的需求,编写自动配置类。 基于@Confiquration注解定义配置类,然后使用@Bean注解来声明bean,可以通过@Conditional系列的注解,根据条件决定是否声明这个bean第二步,就是需要在META-INF/spring.factories配置文件中,根据规则配置自动配置类的全类名。 如果是SpringBoot3.x版本,则需要在新的配置文件,META-INF/spring/xxxx.SpringAutoConfiquration.imports文件中配置自动配置类的全类名基本上,就这么两块儿。定义好了之后,在各个项目中,就可以引入对应的starter直接使用了。

相关文章
|
架构师 NoSQL Java
【案例实战】SpringBoot3.x自定义封装starter实战
【案例实战】SpringBoot3.x自定义封装starter实战
【案例实战】SpringBoot3.x自定义封装starter实战
|
6月前
|
XML Java 数据安全/隐私保护
彻底搞懂 Spring Boot 自动配置原理:从源码拆解到手写 Starter,零废话全干货
本文深入解析SpringBoot自动配置原理,基于SpringBoot 3.4.2版本详细拆解了自动配置的执行流程。主要内容包括:1)自动配置的本质是基于条件注解的动态JavaConfig配置类;2)核心执行流程通过AutoConfigurationImportSelector实现;3)SpringBoot 3.x采用新的自动配置注册方式;4)重点讲解了@Conditional系列条件注解的使用场景与常见坑点;5)通过开发自定义加密Starter实战演示完整实现过程。
1748 3
|
9月前
|
Nacos 微服务
Nacos与Eureka的区别
Eureka与Nacos均支持服务注册发现、健康监测及集群部署,默认采用AP模式保障高可用。区别在于:Nacos心跳间隔更短(5秒),超时剔除更快,支持配置管理与服务变更广播推送,而Eureka仅提供注册中心功能,更新依赖定时任务。
|
9月前
|
Java Spring
Spring Boot配置的优先级
SpringBoot项目支持多种配置方式,主要包括配置文件(application.properties、yml、yaml)和外部配置(系统属性、命令行参数)。优先级从高到低为:命令行参数 > Java系统属性 > application.properties > application.yml > application.yaml。
|
9月前
|
SQL 监控 关系型数据库
如何定位出项目中的慢SQL
在项目开发中,定位慢SQL是常见问题。可通过链路追踪工具(如SkyWalking)分析调用链耗时,精准定位慢接口及慢SQL;若无监控工具,可开启MySQL慢查询日志,配置阈值记录执行时间较长的SQL,进而优化性能。
|
Java Maven 开发者
编写SpringBoot的自定义starter包
通过本文的介绍,我们详细讲解了如何创建一个Spring Boot自定义Starter包,包括自动配置类、配置属性类、`spring.factories`文件的创建和配置。通过自定义Starter,可以有效地复用公共配置和组件,提高开发效率。希望本文能帮助您更好地理解和应用Spring Boot自定义Starter,在实际项目中灵活使用这一强大的功能。
1256 17
|
Java 数据库连接 Maven
最新版 | SpringBoot3如何自定义starter(面试常考)
在Spring Boot中,starter是一种特殊的依赖,帮助开发人员快速引入和配置特定功能模块。自定义starter可以封装一组特定功能的依赖和配置,简化项目中的功能引入。其主要优点包括模块化、简化配置、提高代码复用性和实现特定功能。常见的应用场景有短信发送模块、AOP日志切面、分布式ID生成等。通过创建autoconfigure和starter两个Maven工程,并编写自动配置类及必要的配置文件,可以实现一个自定义starter。最后在测试项目中验证其有效性。这种方式使开发者能够更便捷地管理和维护代码,提升开发效率。
2321 1
最新版 | SpringBoot3如何自定义starter(面试常考)
SpringBoot自动装配的原理
在SpringBoot项目的启动引导类上都有一个注解@SpringBootApplication 这个注解是一个复合注解, 其中有三个注解构成 , 分别是 ● @SpringBootConfiguration : 是@Configuration的派生注解 , 标注当前类是一个SpringBoot的配置类 ● @ComponentScan : 开启组件扫描, 默认扫描的是当前启动引导了所在包以及子包 ● @EnableAutoConfiguration : 开启自动配置(自动配置核心注解) 2.在@EnableAutoConfiguration注解的内容使用@Import注解导入了一个AutoC
|
Java Maven
[Java ] jdk升级 bug java: -source 8 中不支持 instanceof 中的模式匹配 (请使用 -source 16 或更高版本以启用 instanceof 中的模式匹配)
[Java ] jdk升级 bug java: -source 8 中不支持 instanceof 中的模式匹配 (请使用 -source 16 或更高版本以启用 instanceof 中的模式匹配)
1385 0
|
Java 开发者 数据格式
【Java笔记+踩坑】SpringBoot基础4——原理篇
bean的8种加载方式,自动配置原理、自定义starter开发、SpringBoot程序启动流程解析
【Java笔记+踩坑】SpringBoot基础4——原理篇