当前位置: 首页 > news >正文

如何快速自定义一个Spring Boot Starter!!

目录

引言:

一. 我们先创建一个starter模块

二. 创建一个自动配置类

 三. 测试启动


引言:

在我们项目中,可能经常用到别人的第三方依赖,又是引入依赖,又要自定义配置,非常繁琐,当我们另一个项目过程使用的时候,还是同样的操作,以此,为什么我们不直接封装起来成为一个sarter启动类,在我们需要使用的时候,直接就引入依赖,DI注入就可以使用,通过springBoot的自动配置来帮我们加载配置注入!!!用的时候,只需要注入就可以使用了!!!

一. 我们先创建一个starter模块

用来统一管理要导入相关的配置依赖,这样子我们引入一个starter依赖就可以了,通过Maven依赖的传递,其他配置依赖也就传递进来了!!!

二. 创建一个自动配置类

在创建我们的configuration模块中,在Starter中引入改模块(当然简便的化也可以直接就引入这个模块依赖,也是可以的)

三.欧克,我们就可以在configuration中 来自定义配置类了,并自动配置文件META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件就可以了

就随便来模拟一下了

yam中配置一些属性以便后面获取

hz:name: isHeZage: 18

定义一个helloWorldProperties类,通过@ConfigurationProperties注解。这个注解用于将配置文件中的属性绑定到Java Bean上,很方便地在Spring应用程序中使用这些配置属性。

如果提升没有配置注解处理器

点击进去,可以看见官网提供的

 把这个CV到Pom文件中就可以了

此时爆红

因为当前类不是一个Bean类,一般我们会加一个 @Component来声明当前类是一个配置类,那是在当前配置类项中使用的时候,是会扫描到当前配置类的,现在我们是第三方Bean,其他项目使用的时候是扫描不到,我们可以通过EnableConfigurationProperties这个注解,直接可以交给IOC容器中成功里面的Bean对象,其实底层还是封装的Import注解。但是这个只能放在配置类上或者Bean对象上,Ok我们这里直接把他放到我们自定义配置类上。新键一个自定义配置类

@Configuration
@EnableConfigurationProperties(helloWorldProperties.class )
public class helloWorldConfiguration {
}

然后接下来配置我们需要用到的@Bean对象了!!!

先建立一个类HelloHz,并且这里给了一个set方法,到时候把我们的helloWorldProperties引进来


public class HelloHz {private helloWorldProperties helloWorldProperties;public void setHelloWorldProperties(helloWorldProperties helloWorldProperties) {this.helloWorldProperties = helloWorldProperties;}public String getThePropertiesName(){return helloWorldProperties.getName();}public Integer getThePropertiesAge(){return helloWorldProperties.getAge();}}

欧克,我们在配置类中来声明我们的Bean来完成自动配置,写一个方法,返回值就是我们的HelloHz类

@Configuration
@EnableConfigurationProperties(helloWorldProperties.class)
public class helloWorldConfiguration {@Beanpublic HelloHz helloHz(helloWorldProperties properties) {HelloHz helloHz = new HelloHz();helloHz.setHelloWorldProperties(properties);return helloHz;}
}

 这里第三方Bean的时候,需要某个对象,我们直接通过参数的形式注入就完事了,spring到时候会自动跟据这个类型完成自动装配的

最后一步,我们还需要把这个自定义配置类的全类名放到规定的文件下就是META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

欧克完事,我们直接分别打包到本地仓库 

 三. 测试启动

欧克,我们在新键一个项目来引入我们starter依赖看看,我们只需要引入starter依赖就可以了,因为我们的starter依赖已经引入了一个我们的那个自定义的配置模块依赖了。

可以看见已经引入进来了 

 

Test:

@SpringBootTest
public class SpringCsl {@Autowiredprivate HelloHz helloHz;@Testpublic void csl() {System.out.println("helloHz = " + helloHz.getThePropertiesName());System.out.println("helloHz = " + helloHz.getThePropertiesAge());}
}

启动;

 

欧克,没问题,因为我们这里没有配置,我们重新在新项目的yml文件中来配置一下:

hz:name: isTheHzage: 18

再次启动:

 

坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 坤 

http://www.lryc.cn/news/448805.html

相关文章:

  • 【音视频】ffmpeg其他常用过滤器filter实现(6-4)
  • 云栖3天,云原生+ AI 多场联动,新产品、新体验、新探索
  • jackson对于对象序列化的时候默认空值和手动传入的null的不同处理
  • L8打卡学习笔记
  • VBA解除Excel工作表保护
  • bash: unzip: 未找到命令,sudo: nano:找不到命令
  • tauri开发配置文件和文件夹访问路径问题
  • 【web安全】——信息收集
  • 赵长鹏今日获释,下一步会做什么?币安透露2024年加密货币牛市的投资策略!
  • SpringMVC之ContextHolder
  • 什么是SQL注入?
  • 混合密码系统——用对称密钥提高速度,用公钥密码保护会话密钥
  • Three.js粒子系统与特效
  • Tableau数据可视化入门
  • Linux云计算 |【第四阶段】RDBMS1-DAY2
  • 后台监控中的云边下控耗时、边缘采集耗时 、云边下控量
  • 【学习笔记】手写 Tomcat 四
  • 探索基因奥秘:汇智生物如何利用组蛋白甲基化修饰测序技术革新农业植物基因组研究?
  • 二叉搜索树的介绍、模拟实现二叉搜索树、leetcode---根据二叉树创建字符串、leetcode---二叉树的最近公共祖先等的介绍
  • 人工智能的基本概念与发展历程
  • 【IPV6从入门到起飞】5-6 IPV6+Home Assistant(ESPHome+ESP-cam)实时监控
  • 生成式AI的未来
  • 实用好软-----电脑端 从视频中导出音频的方便工具
  • 3-基于容器安装carla
  • 循环程序结构课堂练习题解
  • SpringBoot搭建
  • 【ChatGPT】Python 实现计算两线段的变换矩阵
  • 大数据Hologres(二):Hologres 快速入门
  • 华为仓颉语言入门(7):深入理解 do-while 循环及其应用
  • 在传销案件中数据库取证的分步指南