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

【实战教程】构建可复用的 Spring Boot starter 微服务组件

案例 Demo:https://gitee.com/regexpei/coding-trainee/tree/demo/20240526_starter

介绍

在 Spring Boot 中,starter 启动依赖就像一个“开箱即用”的工具箱,它包含了第三方组件的配置和依赖,让我们无需手动配置和添加这些组件。

通过 starter,我们可以轻松地将通用的代码和配置整合成一个可复用的模块,从而简化项目搭建和代码管理,让开发人员更加专注于业务功能的开发。

那么,我们如何自定义一个 starter 呢?

步骤

  1. 创建 Maven 项目,命名规范为 xxx-spring-boot-starter
    在这里插入图片描述

  2. 引入依赖

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId></dependency>
    </dependencies>
    
  3. 定义 XxxProperties 属性配置类,用于绑定 application.yaml 或 application.properties 文件中的配置属性

  4. 编写业务类,根据 starter 的功能需要编写业务逻辑

  5. 配置 XxxAutoConfiguration 自动配置类

    • 使用 @Configuration 标记为配置类
    • 使用 @EnableConfigurationProperties(XxxProperties.class) 绑定配置属性类
  6. 创建 resources/META-INF/spring.factories

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\  
    xxx.xxx.xxx.XxxAutoConfiguration
    
  7. 在需要使用的项目中引入 starter

    <dependency><groupId>xxx.xxx</groupId><artifactId>xxx-spring-boot-starter</artifactId><version>1.0.0</version>
    </dependency>
    

相关文章:

  • Android 使用kotlin Retrofit2 + Dagger2完成网络请求跟依赖注入组合使用
  • 对未知程序所创建的 PDF 文档的折叠书签层级全展开导致丢签的一种解决方法
  • Python疑难杂症--考试复习
  • c++学习----初识类和对象(上)
  • 1882java密室逃脱管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 揭秘小程序商城的团购奇迹:独特模式引领盈利新纪元
  • Python代码:二十八、密码游戏
  • 搜狐视频专访神工坊创始人任虎:以先进计算技术为引擎,引领新一代CAE革新之路
  • IC开发——VCS基本用法
  • ImportError: cannot import name ‘packaging‘ from ‘pkg_resources‘‘
  • 从CSV到数据库(简易)
  • 深入URP之Shader篇16: UNITY_BRANCH和UNITY_FLATTEN
  • 前端面试题日常练-day43 【面试题】
  • LeetCode 每日一题 数学篇(2769.找出最大的可达成数字)
  • 掌握 NestJS 10.x:NestJS 结合 PostgreSQL 使用详解
  • #Java异常处理
  • 77. Combinations
  • Android系统模拟器绘制实现概述
  • angular2开源库收集
  • Create React App 使用
  • C语言笔记(第一章:C语言编程)
  • exif信息对照
  • HTTP 简介
  • laravel 用artisan创建自己的模板
  • Netty 4.1 源代码学习:线程模型
  • node入门
  • spring + angular 实现导出excel
  • text-decoration与color属性
  • Vue UI框架库开发介绍
  • 初识 beanstalkd
  • 复习Javascript专题(四):js中的深浅拷贝
  • 记一次删除Git记录中的大文件的过程
  • 简单基于spring的redis配置(单机和集群模式)
  • 利用jquery编写加法运算验证码
  • 全栈开发——Linux
  • 试着探索高并发下的系统架构面貌
  • 赢得Docker挑战最佳实践
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #数学建模# 线性规划问题的Matlab求解
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (1)STL算法之遍历容器
  • (2)空速传感器
  • (C++17) optional的使用
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (阿里云万网)-域名注册购买实名流程
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (分类)KNN算法- 参数调优
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .Net 应用中使用dot trace进行性能诊断
  • .NET 中使用 Mutex 进行跨越进程边界的同步