简单两步搞定Springboot自定义starter

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 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…


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


总结


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


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


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
11月前
32SpringBoot自定义Starter
32SpringBoot自定义Starter
51 0
32SpringBoot自定义Starter
|
4月前
|
设计模式 Java 机器人
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
|
架构师 NoSQL Java
【案例实战】SpringBoot3.x自定义封装starter实战
【案例实战】SpringBoot3.x自定义封装starter实战
【案例实战】SpringBoot3.x自定义封装starter实战
|
3月前
|
IDE Java Maven
SpringBoot自定义starter及自动配置
SpringBoot自定义starter及自动配置
|
2月前
|
Java Maven 开发者
Spring Boot中的自定义Starter开发
Spring Boot中的自定义Starter开发
|
2月前
|
Java Maven Spring
Spring Boot中的自定义Starter开发
Spring Boot中的自定义Starter开发
|
4月前
|
Java Spring 容器
SpringBoot2 | SpringBoot自定义AutoConfiguration | SpringBoot自定义starter(五)
SpringBoot2 | SpringBoot自定义AutoConfiguration | SpringBoot自定义starter(五)
42 0
|
4月前
|
Java 数据库连接 Maven
SpringBoot【付诸实践 01】SpringBoot自定义starter保姆级教程(说明+源码+配置+测试)
SpringBoot【付诸实践 01】SpringBoot自定义starter保姆级教程(说明+源码+配置+测试)
60 1
|
4月前
|
Java Maven Spring
Spring Boot - 手把手教小师妹自定义Spring Boot Starter
Spring Boot - 手把手教小师妹自定义Spring Boot Starter
89 0
|
4月前
|
运维 Java Maven
SpringBoot SPI 机制和实现自定义 starter
SpringBoot SPI 机制和实现自定义 starter
134 0