SpringBoot-自定义Starter启动器

Spring Boot 系列教程(一百零一):SpringBoot自定义Starter启动器 在使用SpringBoot框架时,SpringBoot 最强大的功能就是把我们常用的场景抽取封装成了一个个starter,将其称之为场景启动器。搭建项目时,通过引入SpringBoot为我提供的这些场景启动器,然后开发者再进行少量的配置就能快速的开发出一个Java Web应用。究其原理,完全归结于SpringBoot封装的这些Starter ,为我们带来了众多的自动化配置,有了这些自动化配置,使得开发Java项目不费吹灰之力,那么你是否感觉这些Starter 很神奇呢,接下来就揭开其神秘面纱并且徒手自定义一 阅读详情

想详细了解SpringBoot的自动配置原理,可移步:

SpringBoot自动配置原理详解

手绘图,方便梳理整个过程

在这里插入图片描述

1、新建springboot模块-(gao-springboot-starter-autoconfigure)

结构如下:

​ img

新建HelloService自定义服务:

package com.gao;

/**
 * @description:
 * @author: XiaoGao
 * @time: 2021/10/10 14:14
 */
public class HelloService {
    HelloProperties helloProperties;
    public HelloProperties getHelloProperties(){
        return helloProperties;
    }
    public void setHelloProperties(HelloProperties helloProperties){
        this.helloProperties=helloProperties;
    }
    public String sayHello(String name){
        return helloProperties.getPrefix()+name+helloProperties.getSuffix();
    }
}

新建HelloProperties配置类:

注意这个注解@ConfigurationProperties

package com.gao;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @description:
 * @author: XiaoGao
 * @time: 2021/10/10 14:14
 */
@ConfigurationProperties(prefix = "com.hello")
public class HelloProperties {
    private String prefix;
    private String suffix;

    public String getPrefix() {
        return prefix;
    }

    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }

    public String getSuffix() {
        return suffix;
    }

    public void setSuffix(String suffix) {
        this.suffix = suffix;
    }
}

新建自动配置类HelloServiceAutoConfiguration:

/**
 * @description:
 * @author: XiaoGao
 * @time: 2021/10/10 14:17
 */
@Configuration
@ConditionalOnWebApplication
@EnableConfigurationProperties(HelloProperties.class)
public class HelloServiceAutoConfiguration {
    @Autowired
    HelloProperties helloProperties;

    @Bean
    public HelloService helloService(){
        HelloService helloService=new HelloService();
        helloService.setHelloProperties(helloProperties);
        return helloService;
    }
}

在resources下编写META-INF\spring.factories:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.gao.HelloServiceAutoConfiguration

完成后将其安装到maven仓库:

​ img

二、新建一个maven项目,作为启动器

​ img

在pom.xml导入gao-springboot-starter-autoconfigure依赖:

<dependency>
    <groupId>org.example</groupId>
    <artifactId>gao-spring-boot-starter-autoconfigure</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

将启动器导入到maven中:

​ img

这样一来,启动器就自定义成功了,接下来进行测试。

三、测试自定义启动器

  1. 创建maven项目

​ img

  1. 创建controller类
@RestController
public class HelloController {
    @Autowired
    HelloService helloService;

    @RequestMapping("/hello")
    public String hello(){
        return helloService.sayHello("小高");
    }
}
  1. 配置prefix与suffix:
    在这里插入图片描述

  2. 浏览器访问 img

成功,哈哈~~~

【SpringBoot笔记19】SpringBoot框架如何自定义starter启动器 SpringBoot框架之所以能够简化开发,这完全依赖于SpringBoot提供的自动配置机制以及starter启动器,SpringBoot官方给我们提供了很多的starter启动器,当我们要使用某个功能时候,只需要在pom文件里面,引入相应功能的starter启动器,就能够快速的将其集成到SpringBoot框架里面。今天,这篇文章,主要介绍如何自定义一个starter启动器。然后在【application.yml】配置文件里面,开启自动配置功能。 阅读详情

相关推荐

cpp中auto, auto &和const auto &的区别

笔者初学cpp,如有纰漏,请见谅并指正。 用在哪 auto用于推断类型,具体可用于声明变量时根据初始化表达式自动推断该变量的类型,也就是可用在for循环。 也可以用于声明函数返回值的占位符。 怎么用 这里主要讲for循环中三者的区别 直接说结论 auto auto用于copy一份集合中的数据,对于这种情况,在循环体中不论怎么修改copy的数据,是不会影响到原有集合中的数据的。 举个简单的例子 int arr[5] = {0, 1, 2, 3, 4}; cout << "使用auto" <&

NinoSun的博客 3176

Springboot自定义启动器(starter)

1.步骤总结 springboot自定义启动器(starter)总共分3步 引入自动配置依赖 编写配置类注入自定义Bean 编写spring.factories文件开启自动配置 2.实战 首先看一下完整的目录结构 接下来,就开始创建一个自己的启动器。 第一步:引入自动配置依赖 创建一个maven工程,pom文件添加依赖 <parent> <groupId>org.springframework.boot</groupId> &

weixin_44768189的博客 1006

Hyper-V显卡直通实战:手把手解决Windows 11虚拟机错误码43(附完整参数配置)

本文详细解析了在Windows 11 Hyper-V虚拟机中配置显卡直通时遭遇错误码43的根源,并提供了从环境检查、核心PowerShell命令(如Set-VMGpuPartitionAdapter)配置到虚拟机内驱动替换的完整实战解决方案,帮助用户彻底解决显卡驱动无法加载的问题。

weixin_29238147的博客 898

【SpringBoot自定义启动器实现过程】

通过maven创建SpringBoot项目,创建模块工程,实现简单模块开发。实现手写验证码启动器,并在其他模块调用。

wxh_huayu的博客 1229

千兆网口电路设计中的EMC防护与TVS选型实战

本文深入探讨了千兆网口电路设计中面临的EMC挑战,并提供了TVS二极管选型的实战指南。文章分析了ESD、浪涌和EFT等主要威胁,重点阐述了如何根据工作电压、钳位电压和关键的低结电容等参数为PHY芯片选择匹配的TVS器件,以确保在严苛电磁环境下实现可靠的信号完整性与防护。

m3n5b7v8c9x的博客 531

【抓包工具】Windows 10/11:Charles 从零到精通(下载、安装、配置与HTTPS证书实战)

本文提供了一份详尽的Charles抓包工具在Windows 10/11系统上的从零到精通指南。内容涵盖下载安装、初始配置、解决端口冲突,并重点解析了HTTPS抓包的核心步骤——安装CA证书。此外,还介绍了手机抓包配置及映射、断点等高效使用技巧,帮助开发者和测试人员快速掌握网络调试与安全分析技能。

weixin_29251131的博客 551

自建springboot启动器starter并新建springboot项目进行测试

【代码】自建springboot启动器starter并测试完整步骤代码加图

buzai5的博客 606

华为OD机试 - 服务中心选址(Python)

一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址:使服务中心到所有区域的距离的总和最小。先输入区域数组positions的长度n(1 ≤ n ≤ 10^5)接下来 n 行每行输入成对的left和right值,以空格隔开。输出为location。

m0_46181452的博客 282

springboot:自定义starter

秒懂springboot自定义starter

weixin_62735525的博客 4574

YOLOv11改进缝合注意力 | 深度优化的BiFormer模型-结合BiLevel Routing Attention与深度可分离卷积的创新应用(附代码)

YOLO(You Only Look Once)系列目标检测算法一直以来都是计算机视觉领域的热门选择。随着YOLOv11的发布,它在许多实际应用场景中取得了显著的性能提升。然而,面对日益复杂的目标检测任务,单纯依赖卷积神经网络(CNN)在某些情况下已经显得力不从心,特别是在处理小尺度、密集目标以及遮挡目标时,卷积操作的局部性限制了模型的表达能力。

一键难忘的博客 716

【OpenClaw从入门到精通】第03篇:吃透Gateway/Skills/ClawHub核心概念(2026实测+避坑)

本文针对OpenClaw新手易混淆的核心概念痛点,以通俗类比+实操演示拆解OpenClaw核心、Gateway、Skills、ClawHub四大组件。通过“数字员工团队”类比明确各组件定位:OpenClaw核心是“老板”(调度中心)、Gateway是“前台+后勤”(后台进程)、Skills是“专业员工”(功能插件)、ClawHub是“人才市场”(技能商店)。补充版本更名史、技能加载优先级、ClawHub与GitHub区别等关键细节,结合“AI融资新闻查询并邮件推送”虚拟案例演示组件协同流程,梳理5个高频认知

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 5039

springboot如何自定义starter

1.自定义启动器 lmh-hello-spring-boot-starter(启动器) lmh-hello-spring-boot-starter-autoconfigure(自动配置包) 1.1 创建一个空项目 1.2 在空项目的基础上,添加maven空项目,项目名称叫做 lmh-hello-spring-boot-starter 再添加一个springboot空项目,项目名称lmh-hello-spring-boot-starter-autoconfigure 1.3 lmh-hello-spring

weixin_47356044的博客 3375

Yolov5自定义图片训练测试及模型调优(详细过程)

Yolov5自定义数据训练及测试1. 图像数据获取、标注2. 数据集划分及准备3. 配置训练参数,准备训练:3.1 修改data/训练配置xxx.yaml文件:3.2 修改models模型配置xxx.yaml文件4. 开始训练5. 测试训练后的模型: 1. 图像数据获取、标注 如果自定义训练自己的数据集,首先需要数据标注,至于数据来源可以是下载现有的开发数据集、拍照、爬虫等等。 如果是拍照、爬虫等获取的数据图片,需要进行数据标注,这个过程可以使用工具来做,但也需要一些手动操作 。。并且图片越多越好,如果

HowieXue 薛永浩的博客 10万+

SpringBoot之SpringBoot自定义Starter场景启动器

SpringBoot之SpringBoot自定义Starter场景启动器 概念:   相信能看到这里的应该清楚什么是场景启动器,而SpringBoot能够快速整合第三方环境依靠的就是Maven整合依赖+自定义Starter   比如我们之前用的 spring-boot-starter-web spring-boot-starter-aop spring-boot-starter-jt...

彼岸舞的博客 247

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

自定义SpringBoot的Starter启动器

创建模式: 创建两个模块:一个是启动器模块,一个是自动配置模块,启动器依赖自动配置模块;别人只需要引入启动器(Starter)就可以了。 启动器命名规则:mybatis-spring-boot-starter;自定义启动器名-spring-boot-starter 步骤: 1). 启动器模块:对应的pom配置文件 1 2 3 4 5 ...

u011490595的博客 2343

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【SpringBoot学习笔记 五】Spring Boot自定义starter场景启动器

上篇Blog我们学习了SpringBoot是如何实现自动配置的,通过@Configuration的全注解配置方式和Spring Factories 发现机制自动将组件注入到容器,然后依据配置绑定,确定组件的属性值该是多少,实现了全自动的实现方式,不用我们再操心。在第一篇Blog中我们就提到过场景启动器,那么本篇Blog结合SpringBoot自动配置以及前面学的yaml配置文件等知识来自己实现一个自定义的场景启动器。 starter基本概念 我们再回顾下starter的概念:starter 是 Spring

MaoLin Tian's Blog 1631

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SpringBoot如何自定义starter启动器?看这里

!-- 1.引入我们自定义的场景启动器 -->通过测试发现,我们已经可以在其他项目中使用自定义的starter,并使用自动配置好的组件功能了!现在你知道该怎么自定义starter了吗?如果你还有其他问题,可以在评论区留言或私信哦。关注Java架构栈,干货天天都不断!

一一哥 3425

boot spring 一直转 启动_干货|徒手使用SpringBoot自定义Starter启动器

前言在使用SpringBoot框架时,SpringBoot 最强大的功能就是把我们常用的场景抽取封装成了一个个starter,将其称之为场景启动器。搭建项目时,通过引入SpringBoot为我提供的这些不同场景启动器,然后开发者再进行一些属性配置,便能够快速的开发出一个Java Web应用。究其原理,完全归结于SpringBoot封装的这些Starter为我们带来了众多的自动化配置,有了...

weixin_39518002的博客 134

SpringBoot2.x系列教程90--SpringBoot自定义Starter启动器

90_SpringBoot2.x系列教程90--SpringBoot自定义Starter启动器 作者:一一哥 90_SpringBoot2.x系列教程90--SpringBoot自定义Starter启动器 一. SpringBoot中的Starter 1. Starter的概念 2. Starter的优点 3. 常用的Starter 4.Starter的组成 5.SpringBoot的AutoConfiguration机制 二.自定义Starter启动器

一一哥 946

SpringBoot源码学习之路(十七、自定义 starter(启动器))

自定义starter(启动器) starter: 一、SringBoot中的Starter分析: 1、一般开发中经常还会遇见许多场景是我们经常会使用到的,那我们可以将其作为自定义的Starter。实现这些场景自动配置。其他应用使用时只需要导入依赖即可。 2、如何实现场景自动配置呢?我们参考下SpringBoot中的自动配置实现流程: ①、编写一个自动配置类 @Configu...

.... 永远年轻,永远热泪盈眶 1万+

SpringBoot自定义场景启动器starter

1、概述 starter: 这个场景需要使用到的依赖是什么? 如何编写自动配置? @Configuration //指定该类是一个配置类 @ConditionalOnXXX //在指定条件成立的情况下自动配置类生效 @AutoConfigureOrder //指定自动配置类的顺序 @AutoConfigureAfter //指定自动配置类的顺序 @Bean //给容器中添加组件 @ConfigurationProperties(prefix

qq_43240702的博客 491

Spring Boot 自定义 starter 启动器

自定义 starter 基本步骤创建 Maven 项目,在 pom.xml 文件中引入 spring-boot-configuration 相关依赖。编写和配置文件对应的类,提供属性配置。编写业务类。编写自动配置 AutoConfiguration 类。在项目 resources/META-INF 路径下创建 spring.factories 文件。打包测试。创建 Maven 项目 pom.xml 引入依赖<parent></parent><url/><build>

weixin_42118323的博客 2121

Springboot自定义starter(启动器)

Springboot自定义starter(启动器) 1. 创建一个空的project 2. 在空的project下创建两个module:一个为maven项目,一个为springboot项目(为了方便) 3. 在maven项目的pom依赖中引入springboot项目自动配置(这其实就是一个starter) <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

yb970521的博客 695

springboot 前缀_有点意思,SpringBoot徒手自定义Starter启动器

前言在使用SpringBoot框架时,SpringBoot 最强大的功能就是把我们常用的场景抽取封装成了一个个starter,将其称之为场景启动器。搭建项目时,通过引入SpringBoot为我提供的这些场景启动器,然后开发者再进行少量的配置就能快速的开发出一个Java Web应用。究其原理,完全归结于SpringBoot封装的这些Starter ,为我们带来了众多的自动化配置,有了这些自动化配置,...

weixin_33241808的博客 400

springboot 前缀_徒手使用SpringBoot自定义Starter启动器

前言在使用SpringBoot框架时,SpringBoot 最强大的功能就是把我们常用的场景抽取封装成了一个个starter,将其称之为场景启动器。搭建项目时,通过引入SpringBoot为我提供的这些不同场景启动器,然后开发者再进行一些属性配置,便能够快速的开发出一个Java Web应用。究其原理,完全归结于SpringBoot封装的这些Starter为我们带来了众多的自动化配置,有了...

weixin_29970399的博客 617

spring boot 启动卡住_有点意思,SpringBoot徒手自定义Starter启动器

前言在使用SpringBoot框架时,SpringBoot 最强大的功能就是把我们常用的场景抽取封装成了一个个starter,将其称之为场景启动器。搭建项目时,通过引入SpringBoot为我提供的这些场景启动器,然后开发者再进行少量的配置就能快速的开发出一个Java Web应用。究其原理,完全归结于SpringBoot封装的这些Starter ,为我们带来了众多的自动化配置,有了这些自动化配置,...

weixin_39984403的博客 600
上一篇: SpringBoot-自动配置原理详解
下一篇: Cookie与Session详解与区别
高冷小伙
博客等级 码龄7年 223粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高冷小伙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值