自定义Spring-start学习笔记

news2025/1/12 13:48:48

Spring Boot Start的创建和使用

start的工作原理(网图)

在这里插入图片描述

1. 设置Maven项目

创建一个新的Maven或Gradle项目,并在项目的pom.xml文件中添加必要的Spring Boot依赖项和插件。下面以maven项目为例:

  1. 创建Spring Boot项目

在这里插入图片描述

,并在项目的pom.xmlbuild.gradle文件中添加必要的Spring Boot依赖项和插件。

在这里插入图片描述

然后点击“Create”创建项目

创建后的项目文件结构为:如下图所示
在这里插入图片描述

我这里创建的项目结构中没有src/main/resources/META-INF文件,可以右击选择创建目录如下

在这里插入图片描述

然后就可以看到创建“resources‘文件,直接点击下面的选项创建即可。
在这里插入图片描述
接着创建一个META-INF文件,注意使用的短横线不是下划线。

  1. 创建spring.factories文件:在src/main/resources/META-INF目录下创建一个名为spring.factories的文件,并指定你的自动配置类的全限定名。这个文件是Spring Boot在启动时查找自动配置类的地方。

    # spring boot start
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.test.test.TestConfig
    
  2. 定义自动配置类:创建一个带有@Configuration注解的Java类,该类将包含你的Starter提供的所有bean定义和默认配置。你可以使用@Bean注解来定义bean,并使用@ConditionalOn...注解来指定bean的创建条件。

  3. 打包和发布:将你的Starter打包为一个JAR文件,并将其发布到Maven中央仓库或本地的Maven仓库中。(本例子使用的是下载到本地仓库的方法)

    • 首先找到IDEA的maven管理界面,通常在idea界面的右侧边栏
      在这里插入图片描述

    然后点击install将自定义的start下载到本地仓库
    在这里插入图片描述

    如果你没有编写测试类,或者测试错误可能会产生如下的错误
    在这里插入图片描述

    这时候在maven的管理面板上点击如下按钮(跳过测试)
    在这里插入图片描述

    效果如下:
    在这里插入图片描述

    然后重新install控制台显示如下信息,表示安装到本地仓库成功。

    在这里插入图片描述

    如果你想查看你安装到本地仓库的自定义start,那么可以在Idea的settings中的maven中试着查看你maven本地仓库(Local repository)的路径/
    在这里插入图片描述

    C:\Users\Administrator\.m2\repository  #路径,.m2为隐藏文件,需要打开隐藏文件查看
    

在这里插入图片描述

找到对应的路径,就可以找到repositry文件,然后点开之后,文件的存放是按照项目的文件层次存放的

比如:项目的路径是com.test.test,那么查找下载的本地仓库的中文件应该这样查找:先找到com文件,再在com文件中找到test文件,然后继续在test文件中找到其包含的test文件,如下图所示。
在这里插入图片描述

在需要的项目中引入如下,这是在自定义的start的项目信息。相关介绍(链接)

		<dependency>
            <groupId>com.test</groupId>
            <artifactId>test</artifactId>
            <version>1.0.0</version>
        </dependency>

在这里插入图片描述

然后在pom文件中加载依赖,如果没有右上角没有自动显示更新的按钮,那么可以用如下方式手动加载。
在这里插入图片描述

  1. 测试你的Starter:创建一个简单的Spring Boot应用程序来测试你的Starter。通过注入你的Starter提供的bean来验证它们是否按预期工作。
/**
 * 测试类
 *
 */
@SpringBootTest
public class TestClient {


    @Autowired
    private PrintUserClient testClient;

    @Test
    void test(){
       testClient.welcome();
    }
}

  1. 文档和支持:可以编写对应的文档,为你的Starter提供清晰的文档和示例代码,以帮助其他开发者了解如何使用它。

在命名Starter时,官方建议遵循{name}-spring-boot-starter的格式,例如myjson-spring-boot-starter。这样的命名约定有助于区分官方和非官方的Starter。
项目的源代码: https://github.com/Zopt/test-start

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

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

相关文章

私域流量的价值探索:开源链动 2+1 模式、AI 智能名片与 S2B2C 商城小程序的助力

摘要&#xff1a;本文从渠道视角深入剖析私域流量的特殊价值&#xff0c;探讨其作为一种新的销售渠道所具有的重要意义。同时引入开源链动 21 模式、AI 智能名片和 S2B2C 商城小程序等创新元素&#xff0c;阐述它们如何为私域流量的发展提供新的动力和机遇&#xff0c;进一步提…

UE5安卓项目打包安装

Android studio安装 参考&#xff1a;https://docs.unrealengine.com/5.2/zh-CN/how-to-set-up-android-sdk-and-ndk-for-your-unreal-engine-development-environment/ 打开android studio的官网&#xff1a;Download Android Studio & App Tools - Android Developers …

浅谈电动汽车火灾特点及扑救对策研究

0引言 电动汽车火灾事件增多&#xff0c;其特点包括电池高能量密度、快速热释放和烟雾毒性。本文提出应对策略&#xff1a;加强火灾预防&#xff0c;完善电池管理系统&#xff0c;提高电池安全性能&#xff1b;使用干粉灭火器、气溶胶灭火系统等灭火剂&#xff1b;对严重火灾采…

力扣13.罗马数字转整数

4.定义一个哈希存字符和对应的数字 16.定义ans存最终数字 17.定义n存字符串长度 18.开始循环 19.设置value存第一个字符的值 20.如果第一个字符的值小于下一个字符的值&#xff0c;比如IV那么值就是V-I 反之则正常&#xff0b; 最后返回

【实证分析】中国工业经济-数实产业技术融合与企业全要素生产率(2008-2022)

数据简介&#xff1a;本数据参考黄先海和高亚兴老师&#xff08;2023&#xff09;的研究方法&#xff0c;对原文数据进行了年份扩充&#xff0c;更新到了2008-2022年。并按照原文的处理方法对样本进行了清洗和筛选。 数据范围&#xff1a;上市企业层面时间跨度&#xff1a;200…

利用Leaflet.js创建交互式地图:添加Popup

在现代Web开发中&#xff0c;交互式地图已成为展示地理位置数据的强大工具。Leaflet.js是一个开源的JavaScript库&#xff0c;它提供了一个简单易用的界面来创建这样的地图。在本文中&#xff0c;我们将探讨如何使用Leaflet.js创建一个交互式地图&#xff0c;并添加Popup来显示…

配置WSL(单纯记录

[参考链接(https://blog.csdn.net/mustuo/article/details/133960230) 1.开始相关功能 在控制面板-启用或关闭windows功能中 勾选适用于Linux的Windows子系统和虚拟机平台 重启后用管理员权限打开Powershell dism.exe /Online /Enable-Feature /FeatureName:VirtualMachinePl…

js TypeError: Cannot read property ‘initialize’ of undefined

js TypeError: Cannot read property ‘initialize’ of undefined 在JavaScript开发旅程中&#xff0c;遇到TypeError: Cannot read property ‘initialize’ of undefined这样的错误提示&#xff0c;无疑是令人沮丧的。这个错误通常意味着你试图访问一个未定义对象的initiali…

Mac 电脑 git credential osxkeychain问题之一

git credential osxkeychain问题&#xff0c;无法拉取最新代码&#xff0c;failed to get:-128 1.问题描述 不知道是系统还是brew进行了更新&#xff0c;启动项目后 git pull 无法拉取最新代码&#xff0c;git项目git pull 操作时突然提示&#xff1a;git credential osxkeych…

NPU 与 GPU 相比,有什么差别?| 技术速览

编者按&#xff1a; 随着2024年被业界誉为“AI PC元年”&#xff0c;各大笔记本电脑厂商纷纷推出搭载NPU的全新AI PC&#xff0c;而在介绍产品性能时&#xff0c;“NPU”一词频频被提及。但NPU和我们所熟知的GPU之间的区别究竟是什么&#xff1f; 我们今天为大家分享的这篇文章…

RS485隔离方案对比

RS485总线作为一种通用串口通信总线,在工业智能仪表、通讯设备等领域中应用广泛,得益于其优秀的抗干扰能力、长距离传输能力以及高数据传输速率。然而,在实际应用中,RS485总线在面临复杂电磁环境和远距离通信时,可能会受到各种电气干扰,导致信号传输不稳定,甚至可能损坏…

STM32G474读写FLASH

STM32G474读写FLASH主要用来将FLASH的部分页用来存储用户数据&#xff0c;以及分析是如何将“主FLASH存储器”作为引导区。 1、FLASH说明 STM32片内的FLASH分成两部分&#xff1a;主存储块、信息块。 “主FLASH存储器”用来存放用户程序,也就是我们写的程序,都存放在这里。 “…

LabVIEW编程快速提升的技术

在LabVIEW程序员的成长过程中&#xff0c;很多技术和概念看似简单、常用&#xff0c;但真正掌握并能熟练运用&#xff0c;往往需要踏踏实实的实践与积累。没有什么是能够一蹴而就的&#xff0c;唯有通过不断的专注与深入&#xff0c;才能获得显著的提升。要想在LabVIEW开发上取…

Maven 常见问题以及常用命令

常见问题 &#xff1a; 1. 识别不了maven项目 mvn clean install -Dmaven.test.skiptrue //构建 2. 打jar包时报异常 指定下jdk版本 常用命令&#xff1a; mvn clean mvn package mvn install mvn deploy

电气负载模拟器

电气负载仿真的概念涉及控制电力电子转换器&#xff0c;使其行为类似于实际电气负载。例如&#xff0c;电压源逆变器 (VSI) 可以仿真感应电机。在不同情况下&#xff0c;负载仿真器的使用至关重要。它有助于分析在各种负载条件和环境下将多台机器连接到电网的可行性。的部分是&…

【数据结构初阶】栈接口实现及经典OJ题超详解

文章目录 1. 概念与结构1. 1 栈底层结构选型 2. 栈实现2. 1 栈的定义2. 2 栈的初始化2. 3 入栈2. 4 判空2. 5 出栈2. 6 取栈顶元素2. 7 栈大小2. 8 栈销毁2. 9 打印 3. 经典OJ题3. 1 有效的括号 1. 概念与结构 栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和…

IMS 注册流程(详细)

目录 业务模型 图1 EPC 网络附着示意图 图2 IMS 网络注册示意图 注册信令流程 图3 基本注册流程&#xff08;EPC网络-融合HLR/HSS&#xff09; IMS 注册流程 01&#xff1a;UE->P-CSCF 02&#xff1a;P-CSCF->I-CSCF 03&#xff1a;I-CSCF 处理 04&#xff1a;…

组成原理:体系结构,CPU,存储器,Cache

1&#xff0c;系统架构 1.1&#xff0c;组成结构 【硬件】是指计算机的实体部分&#xff0c;它由看得见摸得着的各种电子元件&#xff0c;各类光、电、机设备的实物组成。所有硬件通过总线和接口连接在一起&#xff0c;构成一台完整的计算机。 &#xff08;1&#xff09;运算器…

Spark的介绍

一、分布式的思想 不管是数据也好&#xff0c;计算也好&#xff0c;都没有最大的电脑&#xff0c;而是多个小电脑组合而成。 存储&#xff1a;将3T的文件拆分成若干个小文件&#xff0c;例如每500M一个小文件&#xff0c;将这些小文件存储在不同的机器上 。 -- HDFS 计算&#…

LeetCode_sql_day21(1440.计算布尔表达式的值)

描述&#xff1a; 表 Variables: ------------------------ | Column Name | Type | ------------------------ | name | varchar | | value | int | ------------------------ 在 SQL 中&#xff0c;name 是该表主键. 该表包含了存储的变量及其对应…