【Springboot】Springboot自定义Starter

springboot自定义starter | Spring Boot 6 1、什么是线程池 2、Java自带有哪几种线程池 3、Java中有几种类型的流 4、字节流如何转为字符流 5、请写出你最常见的5个RuntimeException 6、JVM内存分哪几个区,每个区的作用是什么? 7、heap和stack有什么区别 8、Java类加载过程 9、什么是类加载器,类加载器有哪些 10、Java中垃圾收集的方法有哪些 11、如何判断一个对象是否存活(或者GC对象的判断方法) 12、简述Java内... 阅读详情

1. 使用场景

现实开发中,很多情况下需要自己去写一些工具,或者自己去写一些配置,又或者对别人写的框架进行二次的封装,这些东西都是以后非常常用的东西,可能考虑把这些东西打成一个Jar供公司内部的所有人使用。

2. 自定义Starter

2.1 修改目录结构

新建一个SpringBoot项目,将项目的目录改成如下图所示
在这里插入图片描述
大致说明一下:

  1. 删除主类
  2. 删除application.properties/yml
  3. resource目录下,新建一个META-INF文件夹,新建spring.factories文件

2.2 引入pom依赖

 <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

    <dependencies>
    	<!--提供spring中的各种注解以及spring初始化的依赖配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- 起到配置信息提示的作用-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

2.3 编写简单的配置

获取yml中的配置信息

@Component
@ConfigurationProperties(prefix = "customer")
public class CustomerProperties {

    /**
     * 名称
     */
    private String name;

    /**
     * 名称对应的值
     */
    private String value;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

写一个自定义的Bean

public class MyCustomerBean {

    private String name;

    private String value;

    public MyCustomerBean(){

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

编写配置类,往spring中注入Bean

@Configuration
public class MyCustomerBeanConfiguration {

    @Bean
    public CustomerProperties customerProperties(){
        return new CustomerProperties();
    }

    @Bean
    public MyCustomerBean myCustomerBean(CustomerProperties customerProperties){
        System.out.println("配置Customer......");
        MyCustomerBean myCustomerBean = new MyCustomerBean();
        myCustomerBean.setName(customerProperties.getName());
        myCustomerBean.setValue(customerProperties.getValue());
        System.out.println("customer配置完成");
        return myCustomerBean;
    }

}

2.4 指定自动配置的类

在spring.factories中添加如下信息

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.han.configuration.MyCustomerBeanConfiguration

2.5 package 然后 install

3. 使用自定义的Starter

引入我们刚刚自定义的starter

		<dependency>
            <groupId>com.han</groupId>
            <artifactId>han-spring-boot-starter</artifactId>
            <version>1.0</version>
        </dependency>

可以看到yml文件中已经有对应的提示了
在这里插入图片描述
当然,我们注册进去的Bean,同样可以使用

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private MyCustomerBean myCustomerBean;

    @RequestMapping("/demo")
    public String demo(){
        System.out.println(myCustomerBean.getName());
        System.out.println(myCustomerBean.getValue());
        return "success!";
    }

}
【Qt开发】管理OpenGL上下文QOpenGLContext类及应用实践示例代码 QOpenGLContext 提供了一个简单、高效的接口来管理 OpenGL 上下文。本文详细介绍了 QOpenGLContext 的基本功能、常用方法、信号槽机制、高级应用技巧及常见问题的解决方法。通过这些介绍,读者可以更好地掌握和利用 QOpenGLContext 进行 OpenGL 渲染和管理实验。对于有特殊需求的开发者,也可以通过探索更多高级设置和优化策略,以满足具体的应用场景。 阅读详情

相关推荐

LabVIEW vs Python:谁更适合你的ATE自动化测试系统?实测对比与选型建议

本文深入对比了LabVIEW和Python在ATE自动化测试系统中的性能表现、开发效率和应用场景,帮助工程师根据实时控制需求、数据处理复杂度及团队技能做出最优选型决策。通过实测数据和典型案例,分析两者在硬件集成、系统性能和维护成本等方面的差异,并提供混合架构实施建议。

weixin_29240711的博客 275

自定义一个spring-boot-starter

想必大家对于XXX-spring-boot-starter这一串都很熟悉,当我们在springboot当中需要使用某一个插件的时候,往往只需要几步:1.引入相关依赖2.添加配置3.使用通过上面简单的几步,就能够进行使用了!接下来我就将结合我开发中的一个实例带大家走一遍封装一个自定starter的流程!

weixin_45649643的博客 986

CCS8.1 导入CCS3.3工程方法

    CCS3.3作为开发人员使用最广开发工具,研究人员手上存在不少该版本的建立的程序版本,然而随着TI公司推出高级版本的CCS平台,在新的平台上集成了更加丰富的功能和优点。利用新版本的平台在开发和编译旧版本工程上可以节省大量时间和精力。在使用新版本开发3.3版本工程时,首要解决的就是加载3.3的工程文件,现将加载过程记录如下: 第一步:Project-&gt;Import Legacy CC...

1万+

SpringBoot之自定义starter

目录 一、什么是SpringBoot starter机制 二、为什么要自定义starter 三、什么时候需要创建自定义starter 四、自动加载核心注解说明 五、自定义starter的开发流程 案例一:为短信发送功能创建一个starter 案例二:AOP方式统一服务日志 一、什么是SpringBoot starter机制 SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入sta.

qq_52445443的博客 1万+

GitLab中国区注册终极解决方案:绕过+86手机验证的实战技巧(2023最新)

本文详细解析了GitLab中国区注册时绕过+86手机验证的三种实战技巧,包括开发者工具调试方案、使用国际号码的变通方案以及本地化部署替代方案。通过技术分析和实践验证,帮助开发者顺利注册GitLab账号,提升团队协作效率。

rl6adventurer的博客 1490

别再死记硬背了!用‘小乌龟’实战图解ROS1核心指令(rosnode/rostopic/rosparam保姆级手册)

本文通过经典的turtlesim乌龟仿真器,以可视化实战方式讲解ROS1核心指令(rosnode/rostopic/rosparam),帮助初学者摆脱死记硬背,在操控乌龟的过程中轻松掌握节点管理、话题通信和参数设置等ROS1核心概念。

weixin_28731223的博客 370

Spring Boot之自定义Starter

在Spring Boot中,自定义Starter是一种方便的方式来封装和共享一组相关的依赖项和配置。自定义Starter可以简化应用程序的配置,并提供一致的依赖项管理。

积跬步,至千里。 4789

模型剪枝实战 | Torch-Pruning 库在YOLOv8上的应用指南

本文详细介绍了如何使用Torch-Pruning库对YOLOv8模型进行结构化剪枝,以实现模型“瘦身”。通过DepGraph(依赖图)技术自动处理层间依赖,确保剪枝安全。文章提供了从环境搭建、核心原理理解到完整剪枝流程的实战指南,并强调了剪枝后的微调与性能评估,帮助开发者在保持精度的同时显著提升模型推理速度。

weixin_29046035的博客 502

教你如何实现自定义SpringBootStarter

教你如何实现自定义SpringBootStarter

qq_42394044的博客 1万+

2、Elixir与Erlang:构建高可用系统的利器

本文介绍了Elixir与Erlang在构建高可用系统方面的优势,深入探讨了Erlang的并发机制、容错能力以及分布式特性,并结合实际应用场景展示了其在服务器端开发中的强大能力。此外,还提供了学习资源和交流平台,帮助开发者快速上手并深入实践。

grape的博客 124

十三种通信接口芯片——《器件手册--通信接口芯片》

通信接口芯片用于实现差分信号的传输,具有抗干扰能力强、传输距离远等优点。RS485支持多点通信,可连接多个收发器,而RS422支持单向多点通信。广泛应用于工业自动化、过程控制、仪器仪表、楼宇自动化(如暖通空调、保安系统)、电机控制等领域。ST3485EBDRTP8485ESR用于实现串行通信,支持点对点通信,传输距离相对较短,数据速率较低。常用于计算机与外设(如打印机、调制解调器)之间的通信。如芯力特的SIT3232,可作为ST3232的替代品。

XU157303764的博客 4271

SpringBoot中自定义Starter

SpringBoot中自定义Starter

Zhaof_Notes 2761

starrc: LEF DEF FLOW与full chip flat netlist

SIKP_CELLS默认为"SKIP_CELLS: *"意思是跳过所有ref cell内部的rc提取,仅提取cell之间的互联线的rc,"SKIP_CELLS: *!与MACRO_DEF_FILE搭配使用的还有SKIP_CELLS命令,如果想提取block的寄生参数生成full chip的flat netlist,或者跳过block取执行hier的寄生参数提取都需要用到SKIP_CELLS。此时,macroA和macroB没有被跳过,所以提取其内部的rc,spef中存在两个A和两个B。

m0_61544122的博客 551

【Spring Boot】自定义springboot starter

自定义springboot starter

qq_41466440的博客 1139

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SpringBoot四大核心之starter——自定义starter

四大核心 1、starter:jar包的引入,解决jar版本冲突问题 2、自动装配:简单配置甚至零配置即可运行项目 3、actuator:springboot程序监控器 4、CLI:命令行 starter starter的命名有一种习惯,官方的starter一般都是spring-boot-starter-xxx,而我们自定义的starter一般都是xxx-spring-boot-starter。 首先我们需要明白一件事,就是我们自定义的bean是可以自动装配过来的,而我们第三方自定义的starter

10000

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【SpringBoot】实现自定义 spring-boot-starter

Spring Boot 的依赖管理、实现一个自定义的 spring-boot-starter

sun_tantan的博客 1648

android 蓝牙通讯demo

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

【Springboot】自定义starter

想要自定义starter,首先要了解springboot是如何加载starter的,也就是springboot的自动装配机制。SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。

weixin_44823875的博客 1964

【SpringBoot】Spring Boot Starter 详解与实战:手把手自定义 Starter

在传统 Spring 项目中,如果我们想使用Spring + MyBatis + Druid 连接池,通常需要手动添加多个依赖,并编写相关配置:</</</</</</</</然后还要写DataSource配置类、MyBatis 配置等。而的作用就是把这些繁琐的配置封装起来,让开发者只需要引入一个 Starter 依赖,即可自动装配所有组件。例如,使用只需这样:</</</无需手动配置DataSource,Spring Boot 会自动装配数据库相关的 Bean,大大减少了开发成本。

工一木子 2372

SpringBoot-自定义Starter精华版

​ 开发的自定义 Starter 需求是,项目依赖starterTest-spring-boot-starter,starterTest-spring-boot-starter 又加载HelloAutoConfiguration,HelloAutoConfiguration自动产生HelloService,项目中引入 starterTest-springboot-start后,用户便可以使用HelloAutoConfiguration 产生的 HelloService 了

小孔靠得住的博客 2157

重学SpringBoot3-自定义starter

Spring Boot 简化了基于 Spring Framework 的应用程序开发,Spring Boot 的核心功能之一就是 Starter,它极大简化了项目的依赖管理和配置,帮助开发者快速启动项目。而在 Spring Boot 3 中,Starter 仍然是一个至关重要的组件,并进行了很多改进和增强。

CoderJia的学习之路 1641

SpringBoot自定义starter

简化依赖管理:通过将常用的依赖和配置封装到一个starter中,可以避免在每个项目中手动添加和管理这些依赖,从而减少了开发人员的工作量和错误的可能性。提高开发效率:自定义starter能够自动加载所需的配置和组件,帮助开发团队快速搭建具备特定功能的项目骨架。这样开发者可以更专注于业务逻辑的实现,而不是花费时间在配置上。便于维护和升级:当需要更新或升级功能时,只需修改自定义starter,所有依赖于该功能的项目都可以从更新中受益,无需逐个修改每个项目。推广和共享。

2302_78041486的博客 1152

【SpringBoot】【Starter】----SpringBoot Starter 全解:原理、场景、实战自定义 Starter

Starter是SpringBoot提供的一站式依赖封装组件,是官方简化开发的核心设计。它把一类功能所需的依赖包、自动配置类统一打包,开发者无需手动管理版本、导入多个jar。├── custom-log-spring-boot-starter # 依赖聚合模块└── custom-log-spring-boot-autoconfigure # 自动配置核心模块pom.xml</</</</application.yml 配置custom:log:prefix: 项目统一日志官方Starter。

记录生活 225

SpringBoot 自定义 Starter:从零开发一个私有 Starter

用过 SpringBoot 的都知道,引入一个 starter(比如 spring-boot-starter-web、spring-boot-starter-redis),就能实现开箱即用,不用手动配置。答:SpringBoot 启动时,会通过 SpringFactoriesLoader 工具类,读取 classpath 下 META-INF/spring.factories 文件,该文件中配置了自动配置类的全类名,SpringBoot 会加载这些自动配置类,结合条件注解筛选后,注入对应的 Bean。

。。。 1159

springboot 自定义starter

前面说了xx-starter这个项目只是整合了所有的依赖,并不涉及方法的实现,所以xx-starter和xx-configuration是两个项目或模块,提供bean是在xx-configuration项目中实现的,最后在xx-starter项目中引入xx-configuration的依赖就行了。spring-boot-starter-xx是springboot自己提供的依赖,如spring-boot-starter-data-redis。

weixin_43317933的博客 1297
上一篇: 【vmware】vmware的安装,以及使用vmware安装centos7系统
下一篇: 【Kafka】(一)Kafka的单机配置,以及集群环境部署
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

JeffHan^_^

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

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

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

打赏作者

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

抵扣说明:

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

余额充值