自定义Spring Boot Starter

article/2025/6/8 15:14:17

自定义Spring Boot Starter

    • 1.引入依赖
    • 2.配置属性类
    • 3.业务服务类
    • 4.创建自动配置类
    • 5.注册自动配置
    • 6.案例使用
      • 6.1 引入依赖
      • 6.2 手动引入jar包
      • 6.3 yml中配置
      • 6.4 实际使用
    • 7.包结构

1.引入依赖

 <packaging>jar</packaging><dependencies><!-- Spring Boot 自动配置依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId><version>2.6.13</version></dependency><!-- 可选:配置注解处理器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>2.6.13</version><optional>true</optional></dependency></dependencies>

2.配置属性类

package top.remained.lx.properties;import org.springframework.boot.context.properties.ConfigurationProperties;/*** @author lx* @date 2025/5/8* @description 配置属性类*/
@ConfigurationProperties(prefix = "lx")
public class LxProperties {private String name = "default";private int timeout = 1000;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getTimeout() {return timeout;}public void setTimeout(int timeout) {this.timeout = timeout;}
}

3.业务服务类

package top.remained.lx.service;/*** @author lx* @date 2025/5/8* @description 业务服务类*/
public class LxService {private final String name;private final int timeout;public LxService(String name, int timeout) {this.name = name;this.timeout = timeout;}public String greet() {return "Hello, " + name + "! (timeout: " + timeout + "ms)";}
}

4.创建自动配置类

package top.remained.lx.configuration;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import top.remained.lx.properties.LxProperties;
import top.remained.lx.service.LxService;/*** @author lx* @date 2025/5/8* @description*/
@Configuration
@EnableConfigurationProperties(LxProperties.class)
@ConditionalOnClass(LxService.class)
@ConditionalOnProperty(prefix = "lx", name = "enabled",havingValue = "true",matchIfMissing = true)
public class LxConfiguration {@Bean
//    @ConditionalOnMissingBean(LxProperties.class) // 如果没有创建bean 则创建默认beanpublic LxService lxService(LxProperties lxProperties) {return new LxService(lxProperties.getName(), lxProperties.getTimeout());}
}

5.注册自动配置

在resources/META-INF下创建spring.factories文件

org.springframework.boot.autoconfigure.EnableAutoConfiguration=top.remained.lx.configuration.LxConfiguration

6.案例使用

6.1 引入依赖

      <dependency><groupId>top.remained</groupId><artifactId>lx-stater</artifactId><version>2.7.8</version></dependency>

6.2 手动引入jar包

mvn install:install-file -D"file=C:\soft\fastexcel-1.1.0.jar" -D"groupId=cn.idev.excel" -D"artifactId=fastexcel" -D"version=1.1.0" -Dpackaging=jar

6.3 yml中配置

在这里插入图片描述

6.4 实际使用

@RequestMapping("/lx")
@RestController
public class TestLXStarterController {@Autowiredprivate LxService lxService;@GetMapping("/greet")public String greet() {return lxService.greet();}
}

7.包结构

在这里插入图片描述


http://www.hkcw.cn/article/jlxZQPwPVx.shtml

相关文章

5名中国公民在美国遇难 警方回应 酒驾酿悲剧

美国警方于5月30日表示,在5月初黄石国家公园附近发生的致7人死亡的交通事故中,肇事皮卡司机的血液酒精含量超过法定驾驶限值的两倍。这起事故发生在当地时间5月1日晚,地点在美国爱达荷州黄石国家公园附近。事故造成7人死亡、多人受伤。中国驻旧金山总领馆在5月2日确认,死者…

云南雨崩遭遇强降雨关闭景区 游客被困村内

5月31日,云南德钦梅里雪山国家公园开发经营有限公司发布公告称,近期德钦境内遭遇极端天气持续强降雨,雨崩和明永景区部分游览线路区域极易产生山体滑坡、泥石流及塌方,地质灾害风险等级较高,存在极大安全隐患。决定自2025年5月31日起,两景区临时闭园,具体开放时间另行通…

《人民的名义》“孙连城”带货望远镜 从“宇宙区长”到直播达人

5月31日晚,曾在热播电视剧《人民的名义》中饰演“懒政区长孙连城”的演员李威,在短视频平台开启直播带货,所售商品为天文望远镜。近一周内,李威已进行了三场相关直播。然而,6月1日上午,其发布的直播预告视频疑似被隐藏或删除,商品橱窗中的天文望远镜也已清空。在剧中,孙…

左玮:“怎么养都不对”的迷茫,或许来自当下最分裂的教养方式 离知识最近,离生活最远

儿童节之际,祝所有小朋友节日快乐。然而,在庆祝的同时,我们也应反思孩子们是否真的快乐,成长的快乐到底是什么样的。最近,四川大学华西医院儿童心理卫生中心自2023年4月正式揭牌后,使用率一直保持在100%,许多孩子和家长还在排队等待入院。社区心理服务点的心理咨询师同样…

Python实现P-PSO优化算法优化循环神经网络LSTM回归模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在当今数据驱动的时代&#xff0c;时间序列预测和回归分析是许多领域中不可或缺的技术手段。循环神经网络&#xff…

重庆田野公司购销穿山甲制品案宣判 多家药企涉罪免罚

因从重庆田野药业有限公司购买中药饮片炮山甲并进行销售,2019年,四川省简阳市医药有限责任公司、四川省东宇药业有限公司等多家药企均被四川省内江市公安机关立案调查。炮山甲是经炮制的穿山甲鳞片,曾作为中药饮片载入2015年版《中国药典》,但在2020年版《中国药典》中被除…

大巴黎55年首捧欧冠奖杯该感谢谁 恩里克带来转机

即便是强队和弱旅之间的对决,5比0的结果也足够说明问题,更何况是一场欧冠决赛。大巴黎的球迷无疑是幸福的,这支成立于1970年的法甲豪门终于在第17次征战欧冠时拿到了首座冠军奖杯,他们以5比0横扫意甲的国际米兰,创下最大分差纪录。说到法甲联赛,大巴黎是特殊的存在。相比…

(11)课29--30:navicat 的用法;行转列的查询与典型算法,并涉及分组(学生各科成绩与比赛胜负);

&#xff08;48&#xff09; 查询的大例题 &#xff1a; &#xff08;49&#xff09;再举一例 &#xff1a; &#xff08;50&#xff09; 谢谢

巴黎主帅说会把金球奖颁给登贝莱 赞誉其决赛表现

巴黎圣日耳曼在欧冠决赛中以5-0战胜国际米兰,成功夺冠并加冕三冠王。赛后,主教练恩里克出席了新闻发布会。恩里克表示,比赛前的紧张氛围让他难以确切定义这场比赛。他认为球队很好地进入了比赛状态,并且在赛前一周的训练中保持了良好的精神状态。比赛中,球队展现了极高的强…

潘展乐2009年童年照 你能认出他吗?

6月1日,适逢国际儿童节,世界泳联更新了几位游泳运动员的童年照,称都是大家熟悉的运动员,谁能一眼认出他们是谁!你能猜出来他们是谁吗?责任编辑:zhangxiaohua

中国乒协支持樊振东加盟德甲 备战新赛程

6月1日,德甲萨尔布吕肯俱乐部通过社交媒体宣布中国运动员樊振东加盟该俱乐部,将参与2025-2026赛季德国乒乓球甲级联赛和欧洲冠军联赛。樊振东目前仍处在奥运后的调整期,计划通过全国比赛及国内外俱乐部比赛逐步恢复运动状态。中国乒协表示理解和尊重樊振东的意愿,并将全力支…

上海个人养老金人均缴存额全国第一 政策激发市民热情

个人养老金制度是完善多层次养老保险体系的重要措施,通过政策引导与市场机制结合,为市民提供了补充养老储备的灵活选择。截至2025年4月,上海地区个人养老金累计缴存金额超过180亿元,位居全国前列,人均缴存额约1万元,居全国第一。个人养老金每年缴费上限为12000元。对于不…

湖南14岁少年智救落水女子 冷静施救展现智慧勇气

5月29日,长沙浏阳市金刚中学收到一段目击者拍摄的救援视频,九年级2202班学生蔡桃红见义勇为的事迹逐渐为人知晓。这位14岁的少年依靠在学校学到的防溺水知识,挽救了一条生命。5月28日清晨,蔡桃红与父亲途经太子湖桥时,突然听到桥下传来急促的呼救声。他们发现一名女子在湖…

樊振东还会参加今年乒超联赛吗 确定参加前两阶段

北京时间6月1日,德国乒乓球甲级联赛FC萨尔布吕肯俱乐部宣布奥运冠军樊振东加盟。这一消息让球迷们非常关心他是否还能参加本赛季的乒超联赛。上海市乒羽中心透露,樊振东将参加乒超第一和第二阶段的比赛。中国乒乓球协会在5月28日公布了2025赛季中国乒乓球俱乐部超级联赛的赛程…

独自养活3弟妹的女生被堵门:被吓到 坚强女孩逆境中奋斗

凌晨4点半,江苏沭阳的天还没亮,19岁的陈小雨已经轻手轻脚地起床。她要赶在弟妹醒来前蒸好馒头、煮好稀饭,再检查一遍书包里的作业本有没有漏带。5点整,她套上外卖骑手服,跨上那辆二手电动车,顶着冷风冲进夜色里。40公里的送餐路,只是她一天战斗的开始。最近,一位博主实…

雷军六一儿童节晒童年照片 分享少先队回忆

6月1日儿童节,雷军在社交平台上分享了自己的童年照片,并提到照片中左手臂上的三条杠。这三条杠是少先队的分级标志,代表大队长的身份。同一天,雷军还发布了健身打卡,并祝所有小朋友六一儿童节快乐。责任编辑:zx0001

小沈阳演唱会邀18岁女儿做嘉宾 表现引争议

5月31日晚,小沈阳在沈阳举办演唱会,并宣布了一位神秘嘉宾。许多歌迷猜测这位嘉宾可能是本山传媒的艺人或师父赵本山,但最终揭晓的身份却让不少人感到失望,引发了各种质疑。小沈阳和沈春阳的女儿沈佳润已经18岁了,与儿时相比,她现在更加朝气蓬勃,散发出浓浓的女子组合范。…

马尔基尼奥斯社媒庆祝夺冠 巴黎首夺欧冠荣耀

北京时间6月1日,巴黎圣日耳曼在欧冠决赛中以5-0击败国际米兰,赢得了冠军。赛后,队长马尔基尼奥斯在社交媒体上分享了庆祝胜利的照片,并写道:“多年之后,历经艰辛与战斗,这一切都是为了你,巴黎圣日耳曼。”马尔基尼奥斯还表达了对球队和球迷的感激之情:“巴黎,这就是欧…

C#原型模式实战:浅拷贝与深拷贝详解

文章目录 一、原型模式简介二、原型模式的定义与结构2.1 定义2.2 结构图2.3 主要角色 三、C#中的原型模式实现3.1 使用ICloneable接口3.2 自定义克隆接口 四、浅拷贝与深拷贝4.1 浅拷贝&#xff08;Shallow Copy&#xff09;4.2 深拷贝&#xff08;Deep Copy&#xff09;4.3 浅…

统计图中节点特征的余弦相似度、欧式距离

把有关系节点的余弦相似度保存在一块&#xff0c;再把没有关系节点的余弦相似度保存在一块&#xff0c;最后绘图 程序&#xff1a; #zhouzhichao #25年5月29日 #统计图中节点的余弦相似度import h5py import random import numpy as np import pandas as pd from sklearn.met…