简单两步搞定Springboot自定义starter

简介: Springboot 自定义 starter好了 进入主题,今天来和小伙伴们分享这个 Springboot 自定义 starter 😄直接来到 Springboot 的官方文档中查看~docs.spring.io/spring-boot…可以发现,它在这个自动配置的目录中,而经过之前两篇文章的分析 👇实战分析 👉 花了2个钟才搞懂这AOP为啥没生效,水友却睡着了……原理分析 👉 Springboot自动装配原理探索相信小伙伴们对这个自动配置和自定义stater 有了初步的了解,那么我们来看看官网是真么说的叭

Springboot 自定义 starter


好了 进入主题,今天来和小伙伴们分享这个 Springboot 自定义 starter 😄

直接来到 Springboot 的官方文档中查看~


docs.spring.io/spring-boot…


网络异常,图片无法展示
|


可以发现,它在这个自动配置的目录中,而经过之前两篇文章的分析 👇


实战分析 👉 花了2个钟才搞懂这AOP为啥没生效,水友却睡着了……


原理分析 👉 Springboot自动装配原理探索


相信小伙伴们对这个自动配置和自定义stater 有了初步的了解,那么我们来看看官网是真么说的叭


Auto-configuration can be associated to a “starter” that provides the auto-configuration code as well as the typical libraries that you would use with it.


就是说可以将自动配置类和依赖包进行打包,成为一个 starter ,来给其他人使用

看完官网后我发现貌似也没啥好写的🙃


网络异常,图片无法展示
|


貌似就这一点点知识了……🐷


  • 自动配置的各种条件注解


  • 自定义 starter 的命名规范 如: xxx-spring-boot-starter

那咱们就来看看这个小例子叭😄


思路


  1. 准备自动配置类


  1. 配置 spring.factories


  1. 部署到本地仓库


  1. 在其他项目中引用


一.自动配置类


这里参考下 redis 的自动配置类


网络异常,图片无法展示
|


这里使用到了很多条件注解,比如:


  • @ConditionalOnClass(RedisOperations.class) 当存在这个 RedisOperations.class 时,这个配置才有效,而这个配置又是在我们引入的jar中有的


  • @ConditionalOnMissingBean(name = "redisTemplate") 当没有这个 redisTemplate 的bean时有效


  • @ConditionalOnSingleCandidate(RedisConnectionFactory.class) 确保 RedisConnectionFactory 创建之后才创建这个 redisTemplate


然后,我们自己的就没那么复杂啦,就这么点~


@EnableConfigurationProperties(HelloProperties.class)
public class HelloAutoConfiguration {
    @Bean
    @ConditionalOnMissingBean(HelloTest.class)
    public HelloTest getHelloTest(){
        return new HelloTest();
    }
}
复制代码


读取 HelloProperties 配置类,然后创建 HelloTest 这个 bean 😄


二.配置 spring.factories


META-INF/spring.factories 中进行配置 如:


org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.java4ye.demo.config.HelloAutoConfiguration
复制代码


三.部署到本地仓库


参考官网的命名方式,配置我们的 pom文件👇


<groupId>org.4ye</groupId>
<artifactId>hello-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
复制代码


打包方式选择 jar 就可以了


这里执行 maven install 命令就可以了


细节注意


  1. package 只打包,install 会部署到本地仓库, deploy 才会部署本地和远程仓库
  2. spring-boot-configuration-processor 这个包的作用: 给自定义的配置类生成元数据信息的


  1. pom 文件中引入 processor 时加入 true ,给其他项目选择,不会增加不必要的依赖


四. 其他项目中使用


在其他项目中引入该jar包即可~


<dependency>
    <groupId>org.4ye</groupId>
    <artifactId>hello-spring-boot-starter</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
复制代码


代码的话呢,我放在 GitHub 上啦


地址👉 github.com/RyzeYang/sp…


网络异常,图片无法展示
|


总结


最后,老规矩,再画个图总结下~


网络异常,图片无法展示
|


目录
相关文章
32SpringBoot自定义Starter
32SpringBoot自定义Starter
138 0
32SpringBoot自定义Starter
|
架构师 NoSQL Java
【案例实战】SpringBoot3.x自定义封装starter实战
【案例实战】SpringBoot3.x自定义封装starter实战
【案例实战】SpringBoot3.x自定义封装starter实战
|
设计模式 Java 机器人
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
|
JavaScript Java 程序员
SpringBoot自动配置及自定义Starter
Java程序员依赖Spring框架简化开发,但复杂的配置文件增加了负担。SpringBoot以“约定大于配置”理念简化了这一过程,通过引入各种Starter并加载默认配置,几乎做到开箱即用。
566 10
SpringBoot自动配置及自定义Starter
|
Java Maven 开发者
编写SpringBoot的自定义starter包
通过本文的介绍,我们详细讲解了如何创建一个Spring Boot自定义Starter包,包括自动配置类、配置属性类、`spring.factories`文件的创建和配置。通过自定义Starter,可以有效地复用公共配置和组件,提高开发效率。希望本文能帮助您更好地理解和应用Spring Boot自定义Starter,在实际项目中灵活使用这一强大的功能。
1192 17
|
Java 数据库连接 Maven
最新版 | SpringBoot3如何自定义starter(面试常考)
在Spring Boot中,starter是一种特殊的依赖,帮助开发人员快速引入和配置特定功能模块。自定义starter可以封装一组特定功能的依赖和配置,简化项目中的功能引入。其主要优点包括模块化、简化配置、提高代码复用性和实现特定功能。常见的应用场景有短信发送模块、AOP日志切面、分布式ID生成等。通过创建autoconfigure和starter两个Maven工程,并编写自动配置类及必要的配置文件,可以实现一个自定义starter。最后在测试项目中验证其有效性。这种方式使开发者能够更便捷地管理和维护代码,提升开发效率。
2223 1
最新版 | SpringBoot3如何自定义starter(面试常考)
|
IDE Java Maven
SpringBoot自定义starter及自动配置
SpringBoot自定义starter及自动配置
|
Java Maven 开发者
Spring Boot中的自定义Starter开发
Spring Boot中的自定义Starter开发
|
Java Maven Spring
Spring Boot中的自定义Starter开发
Spring Boot中的自定义Starter开发
|
Java 数据库连接 Maven
SpringBoot【付诸实践 01】SpringBoot自定义starter保姆级教程(说明+源码+配置+测试)
SpringBoot【付诸实践 01】SpringBoot自定义starter保姆级教程(说明+源码+配置+测试)
316 1