Spring Boot3自定义starter

server/2024/11/19 10:22:32/

1、加入必要依赖

plugins {id 'java'id 'org.springframework.boot' version '3.2.6'id 'io.spring.dependency-management' version '1.1.5'
}
group 'org.example.test.starter'
version '1.1.0'jar{enabled=true//  resolveMainClassName
}java {toolchain {languageVersion = JavaLanguageVersion.of(17)}
}repositories {maven { url 'https://maven.aliyun.com/repository/public/' }mavenCentral()
}dependencies {implementation 'org.springframework.boot:spring-boot-starter'implementation 'org.springframework.boot:spring-boot-configuration-processor'
}

2、定义Properties及业务service

java">@ConfigurationProperties(prefix = "test")
public class TestProperties {private List<String>  dataList;private Map<String,String>  dataMap;public List<String> getDataList() {return dataList;}public void setDataList(List<String> dataList) {this.dataList = dataList;}public Map<String, String> getDataMap() {return dataMap;}public void setDataMap(Map<String, String> dataMap) {this.dataMap = dataMap;}
}
java">public class TestConfigurationService {private List<String>  list;public void showList(){list.forEach(System.out::println);}public void setList(List<String> list) {this.list = list;}
}
java">public class TestConfigurationService {private List<String>  list;public void showList(){list.forEach(System.out::println);}public void setList(List<String> list) {this.list = list;}
}
java">@Component
public class TestImportService {@Resourceprivate TestProperties testProperties;public void  showMap(){Map<String, String> dataMap = testProperties.getDataMap();if(!CollectionUtils.isEmpty(dataMap)){Set<String> keySet = dataMap.keySet();keySet.forEach(key-> System.out.println("key="+key+"--value="+dataMap.get(key)));}}}

3、自动配置类

java">@EnableConfigurationProperties({TestProperties.class})
@Import({TestImportService.class})
@Configuration
public class TestStarterAutoConfiguration {@Beanpublic TestConfigurationService testConfigurationService(TestProperties testProperties){TestConfigurationService testConfigurationService = new TestConfigurationService();testConfigurationService.setList(testProperties.getDataList());return testConfigurationService;}}

         配置自动导入类,在resource创建META-INF/spring目录,在目录下创建org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,写入TestStarterAutoConfiguration 全路径

4、调用测试

test:data-list:- Java- C/C++- C#- Vuedata-map:name: LiuPingage: 30address: HeNanXinXian
java">
@Service
public class TestService {@Autowiredprivate TestConfigurationService testConfigurationService;@Autowiredprivate TestImportService  testImportService;public void  test(){testConfigurationService.showList();testImportService.showMap();}


http://www.ppmy.cn/server/143151.html

相关文章

开源项目低代码表单设计器FcDesigner扩展自定义组件

开源项目低代码表单设计器FcDesigner中的通过将自定义组件集成到设计器中&#xff0c;您可以添加额外的界面元素和功能&#xff0c;从而增强设计器的适用性和灵活性。以下是详细步骤&#xff0c;以帮助您创建、导入、注册和配置自定义组件。 源码地址: Github | Gitee | 文档 …

CompressAI安装!!!

我就不说废话了&#xff0c;直接给教程&#xff0c;还是非常简单的 但是我看了好多帖子&#xff0c;都没有说明情况 一定要看最后最后的那个注释 正片开始&#xff1a; 一共有三种方式&#xff1a; 第一种就是本机安装&#xff1a; 在网址上下载对应版本Links for compre…

IP数据云 识别和分析tor、proxy等各类型代理

在网络上使用代理&#xff08;tor、proxy、relay等&#xff09;进行访问的目的是为了规避网络的限制、隐藏真实身份或进行其他的不正当行为。 对代理进行识别和分析可以防止恶意攻击、监控和防御僵尸网络和提高防火墙效率等&#xff0c;同时也可以对用户行为进行分析&#xff…

SOA(面向服务架构)全面解析

1. 引言 什么是SOA&#xff08;面向服务架构&#xff09; SOA&#xff08;Service-Oriented Architecture&#xff0c;面向服务架构&#xff09;是一种将应用程序功能以“服务”的形式进行模块化设计的架构风格。这些服务是独立的功能模块&#xff0c;它们通过定义明确的接口…

最长连续序列

题目描述 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#…

插入排序——直接插入排序

插入排序——直接插入排序 7.4 插入排序——直接插入排序插入排序基本思想&#xff1a;直接插入排序参考程序直接插入排序的特性总结 7.4 插入排序——直接插入排序 插入排序基本思想&#xff1a; 直接插入排序是一种简单的插入排序法&#xff0c;其基本思想是&#xff1a; …

reactflow 中 useNodesState 模块作用

1. 节点状态管理核心功能 useNodesState是一个关键的钩子函数&#xff0c;用于专门管理节点&#xff08;Nodes&#xff09;的状态。节点是流程图的核心元素&#xff0c;它们可以代表各种实体&#xff0c;如流程中的任务、系统中的组件或者数据结构中的元素。 useNodesState提…

常见的网络协议汇总(涵盖了不同的网络层次)

网络层协议 IP协议&#xff1a;IP指网际互连协议&#xff08;Internet Protocol&#xff09;&#xff0c;是TCP/IP体系中的网络层协议。IP协议包括IPv4和IPv6&#xff0c;用于为数据包提供源地址和目标地址&#xff0c;从而实现网络通信。ICMP协议&#xff1a;ICMP&#xff08…