SpringBoot自己开发一个starter

提示:本文主要讲述如何自行开发一个SpringBoot的starter

文章目录

目录

文章目录

前言

一、Starter是什么

二、创建一个SpringBoot项目

1.创建一个基本的SpringBoot项目

2.选择要下载的库

三、设置项目

1.提示

2.配置pom.xml

3.重点代码

1.创建一个User类

 2.创建一个modelConfig类

3.创建一个DemoClient类

 4.目录结构

5.创建一个resources目录

 6.生成Starter

 四、使用

 1.配置文件

application.yml

 获取配置文件中的值

 获取传递过去的值

 五.结果

前言

开发这个主要是为了以后的工作可以更加轻松一点,能够快速的实现一些业务代码


一、Starter是什么

相信大家在学习的时候都有使用过Starter,但是应该还没有人自己动手制作过一个Starter吧,希望这期搭建一个简单的博客,可以帮助到大家

二、创建一个SpringBoot项目

1.创建一个基本的SpringBoot项目

2.选择要下载的库

 上面的这个库是必须下载的,是为了你将来给配置文件的写入的时候有代码提示的

 这个包我就不多介绍了,应该学习SpringBoot的都知道这个包

三、设置项目

1.提示

设置项目的maven的路径提示啊,JDK什么的我就这里不做了

2.配置pom.xml

    <groupId>com.xinggui</groupId><artifactId>starter-demo</artifactId><version>0.0.1</version>    <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>${java.version}</source><target>${java.version}</target></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

 

3.重点代码

1.创建一个User类

@Data
public class User {private String name;private Integer age;public User(String name, Integer age) {this.name = name;this.age = age;}}

 2.创建一个modelConfig类

/*** 配置类,用于管理模型相关的配置属性。* 通过@ConfigurationProperties注解,指定了配置属性的前缀为"xinggui.demo"。* 使用@ComponentScan注解,指示Spring扫描指定包下的组件。*/
@Configuration
@ConfigurationProperties(prefix = "xinggui.demo")
@Data
@ComponentScan
public class modelConfig {/*** 用户名称属性。*/private String name;/*** 用户年龄属性。*/private Integer age;/*** 定义一个Bean方法,返回一个User对象的字符串表示。* 此方法通过注入name和age属性创建一个新的User对象,并将其转换为字符串形式返回。* @return 返回一个包含用户姓名和年龄信息的字符串。*/@Beanpublic String user(){return new User(name,age).toString();}
}

3.创建一个DemoClient类

public class DemoClient {private String name;private Integer age;public DemoClient(String name, Integer age) {this.name = name;this.age = age;}public String setUser(String userName, Integer passWord){return new User(name,age).toString();}}

 4.目录结构

5.创建一个resources目录

 

# spring boot starter
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.xinggui.starterdemo.modelConfig
# com.xinggui.starterdemo.modelConfig位置写你自己的配置路径配置类

 6.生成Starter

 四、使用

打开另一个项目引入这个依赖

引入的依赖内容应该是

 1.配置文件

application.yml

xinggui:demo:name: xingguiage: 18

 获取配置文件中的值

 测试方式写法

 获取传递过去的值

 五.结果


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

16.x86游戏实战-汇编指令push pop pushad popad

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

【第29章】MyBatis-Plus之分页插件

文章目录 前言一、支持的数据库二、配置方法三、属性介绍四、自定义 Mapper 方法中使用分页五、其他注意事项六、Page 类七、实战1. 配置类2. 分页类3. 测试 总结 前言 MyBatis-Plus 的分页插件 PaginationInnerInterceptor 提供了强大的分页功能&#xff0c;支持多种数据库&a…

Windows电脑安装Python结合内网穿透轻松搭建可公网访问私有网盘

文章目录 前言1.本地文件服务器搭建1.1.Python的安装和设置1.2.cpolar的安装和注册 2.本地文件服务器的发布2.1.Cpolar云端设置2.2.Cpolar本地设置 3.公网访问测试4.结语 前言 本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言&#xff0c;在自己的电脑上搭建…

kubernetes授予用户指定命名空间的使用权限

kubernetes授予用户指定命名空间的使用权限 问题描述具体实现签发客户端证书创建RBAC策略生成kubeconfig文件 问题描述 假如我们部门来了个新同事&#xff0c;他需要使用kubernetes集群&#xff0c;但是因为他刚来&#xff0c;还不熟悉&#xff0c;所以不能直接将kubernetes集…

Spring如何控制Bean加载+执行顺序

1. Order 注解和 Ordered 接口 用途&#xff1a;控制组件执行顺序或排序&#xff0c;但不控制Bean初始化顺序。定义执行顺序&#xff1a;通过整数值指定组件优先级&#xff0c;数值越小优先级越高。集合排序&#xff1a;影响自动装配到集合中的组件排列顺序。使用场景&#xf…

77.MySQL的分页查询

一、LIMIT关键字 LIMIT关键字用于限制返回结果集中的行数。其基本语法如下&#xff1a; SELECT * FROM 表名 LIMIT 行数; 例如&#xff0c;要从名为mark_info的表中选择最新创建的10个工单的信息&#xff0c;可以执行以下查询&#xff1a; SELECT * FROM mark_info ORDER B…

电力需求预测挑战赛笔记 Taks1 跑通baseline

#AI夏令营 #Datawhale #夏令营 赛题 一句话介绍赛题任务可以这样理解赛题&#xff1a; 【训练时序预测模型助力电力需求预测】 电力需求的准确预测对于电网的稳定运行、能源的有效管理以及可再生能源的整合至关重要。 赛题任务 给定多个房屋对应电力消耗历史 N 天的相关序列数…

拓扑排序(算法篇)

算法之拓扑排序 拓扑排序 概念&#xff1a; 拓扑排序是对有向无圈图的顶点的一种排序。排序不必是唯一的&#xff0c;任何合理的排序都是可以的。具体做法是&#xff1a;先找出任意一个没有入边的顶点v(就是没有其他顶点指向的顶点)&#xff0c;将顶点v放入队列&#xff0c;…

element-plus el-table点击当前行和划过展示鼠标

在 Element Plus 的 el-table 组件中&#xff0c;设置滑过行时鼠标的样式可以通过 CSS 来实现。你可以使用 CSS 的 cursor 属性来定义鼠标悬停时的样式。以下是一个简单的例子&#xff1a; 首先&#xff0c;在你的 Vue 组件的 .el-table .el-table__row:hover {cursor: poin…

09.AOP-尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)

现有代码缺陷 针对带日志功能的实现类&#xff0c;我们发现有如下缺陷&#xff1a; 对核心业务功能有干扰&#xff0c;导致程序员在开发核心业务功能时分散了精力附加功能分散在各个业务功能方法中&#xff0c;不利于统一维护 解决思路 解决核心&#xff1a;解耦。把附加功能从…

glm-4 联网搜索 api 测试

今天测试了一下 glm-4 的联网搜索 web_search tool 调用&#xff0c;发现了 web_search 的网页检索返回结果中几个比较诡异的事情&#xff0c;特此记录&#xff1a; 有些检索结果没有 icon、link、media 字段&#xff0c;但从内容上看确实是联网搜索出来的结果&#xff0c;不知…

从零开始读RocketMq源码(三)Broker存储Message流程解析

目录 前言 准备 消息载体CommitLog 文件持久化位置 源码解析 broker消息对象MessageExtBrokerInner 异步存储message CommitLog的真相 创建MappedFile文件 加入异步刷盘队列 Message异步存储MappedByteBuffer 总结 前言 在面试中我们经常会听到这样的回答&#x…

国产化趋势下源代码数据防泄密的信创沙盒的方案分享

随着国产化的大力推进&#xff0c;越来越多的企事业单位在逐步替换Windows、Linux等操作系统的使用。那么什是国产化了&#xff1f;国产化是指在产品或服务中采用国内自主研发的技术和标注&#xff0c;替代过去依赖的他国的产品和服务&#xff0c;国产化又被称之为“信创”&…

GitLab CI/CD实现项目自动化部署

1 GitLab CI/CD介绍 GitLab CI/CD 是 GitLab 中集成的一套用于软件开发的持续集成&#xff08;Continuous Integration&#xff09;、持续交付&#xff08;Continuous Delivery&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;工具。这套系统允许开发团队…

vue里实现点击按钮回到页面顶部功能,博客必备!

效果 步骤 1-标签结构 动态绑定样式style&#xff0c;监听点击事件&#xff0c;后续控制opacity透明度。和滚动距离 <div class"toTop" :style"dynamicStyles" click"toTop"><!--<i class"fa fa-arrow-up"></i>…

Django ORM中的F 对象

F 对象非常强大&#xff0c;可以在查询和更新操作中进行复杂的字段间运算。 假设我们有一个包含商品信息的模型 Product&#xff1a; from django.db import modelsclass Product(models.Model):name models.CharField(max_length100)price models.DecimalField(max_digits…

MySQL向自增列插入0失败问题

问题 在一次上线时&#xff0c;发现通过脚本添加的状态表中&#xff0c;待提交的状态不正确&#xff0c;本来应该是0&#xff0c;线上是101。 原因 默认情况下&#xff0c;MySQL对应自增列&#xff0c;认为0和null等价&#xff08;因为mysql认为0不是最佳实践不推荐使用&…

超简单的通配证书签发工具,免费,无需安装任何插件到本地

常见的acme.sh 或者 lego等工具需要配置&#xff0c;安装不灵活&#xff0c;续签需要配置计划任务&#xff0c;签发单域名证书或者通配证书需要不同的指令和配置&#xff0c;繁琐&#xff0c;如果自己程序想要对接签发证书的api有的不支持&#xff0c;有的用起来繁琐。 最近发…

[手机Linux PostmarketOS]三, Alpine Linux命令使用

Alpine Linux 一些常用的指令&#xff1a; 添加国内源下载链接&#xff1a; 编译以下文件&#xff0c;添加链接进去&#xff1a; sudo vi /etc/apk/repositories##清华源&#xff1a; https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main https://mirror.tuna.tsi…

【VIVADO SDK调试遇到DataAbortHandler】

问题 SDK调试遇到DataAbortHandler问题。 运行后不显示结果&#xff0c;debug模式下发现进入DataAbortHandler异常函数。程序中存在大数组。 原因:SDK默认的堆栈为1024bytes,需要将堆栈调大。 修改方法&#xff1a; 解决:对application中src下的lscript.ld双击&#xff0c;…