【实战】SpringBoot自定义 starter及使用

这篇具有很好参考价值的文章主要介绍了【实战】SpringBoot自定义 starter及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

各位大佬在使用springboot或者springcloud的时候都会根据需求引入各种starter,比如gateway、feign、web、test等等的插件。当然,在实际的业务场景中也会有将第三方组件整合为starter供其他项目接入。那么,我们今天就分享一波SpringBoot自定义 Starter及使用。

技术积累

SpringBoot starter简介

starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块。

【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

starter的开发步骤

新建Maven项目,在项目的POM文件中定义使用的依赖;
新建配置类,写好配置项和默认的配置值,指明配置项前缀;
新建自动装配类,使用@Configuration和@Bean来进行自动装配;
新建spring.factories文件,指定Starter的自动装配类;

实战演示

自定义一个简单的starter
本次我们就简单整合一个工具类、一个api接口demo供大家了解创建流程,对于其他的配置项或者涉及数据等等也都在这个基础的starter进行叠加而已。

1、新建Maven项目
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

选中两个插web和lombok,点击finish完成项目创建
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

2、pom中增加项目依赖不传递配置,以及配置maven打包生成可执行依赖jar

<!--项目依赖不传递
例如:project1依赖a.jar(optional=true),project2依赖project1,则project2不依赖a.jar-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <!--配置可执行jar的名称,不对原jar重命名为.original-->
        <classifier>exec</classifier>
        <excludes>
            <exclude>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </exclude>
        </excludes>
    </configuration>
</plugin>

3、删除不必要的文件,最后剩下的项目格式为
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

4、启动类取消自动配置注释并清空方法
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

5、.新建spring.factories文件,指定starter的自动装配类
在resource下新建META-INF目录,然后新增spring.factories自动装配文件,并在文件中指定装配类
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.example.demostarter.DemoStarterApplication

6、新增测试接口和测试类
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

/**
 * TestController
 * @author Administrator
 * @version 1.0
 * @date 2024/1/20 0020 15:50
 */
@RestController
public class TestController {
    
    /**
     * TestStarterApi
     * @param str
     * @author Administrator
     * @date 2024/1/20 0020 15:51 
     * @return java.lang.String
     */
    @GetMapping("/testStartApi")
    public String TestStarterApi(String str){
        return "this is a TestStarterApi data is "+str;
    }
    
}
/**
 * TestStartUtils
 * @author Administrator
 * @version 1.0
 * @date 2024/1/20 0020 15:52
 */
public class TestStartUtils {
    
    /**
     * test
     * @author Administrator
     * @date 2024/1/20 0020 15:53 
     * @return void
     */
    public static void test(){
        System.err.println("this is a TestStartUtils test method");
    }
}

7、将demo-starter安装到本地仓库进行测试,当然也可以部署到远程仓库
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

也可以用命令: mvn install
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

至此,整个Starter开发完毕,已经install本地仓库,deploy远程仓库同理(mvn deploy)

自定义starter的使用

1、在需要使用starter的maven项目pom中引入demo-starter

<!--demo-starter-->
<dependency>
   <groupId>com.example</groupId>
   <artifactId>demo-starter</artifactId>
   <version>0.0.1-SNAPSHOT</version>
</dependency>

2、编写测试类,并在启动类配置扫描包位置

/**
 * TestdemoApplicationTests
 * @author Administrator
 * @date 2024/1/20 0020 16:33 
 */
@SpringBootTest
class TestdemoApplicationTests {

   /**
    * contextLoads
    * @author Administrator
    * @date 2024/1/20 0020 16:33 
    * @return void
    */
   @Test
   public void contextLoads() {
      TestStartUtils.test();
   }

}
@ComponentScan("com.example")
@SpringBootApplication
public class TestdemoApplication {

   public static void main(String[] args) {
      SpringApplication.run(TestdemoApplication.class, args);
   }

}

3、测试引入starter,效果展示
3.1 可以直接依赖starter中的类并可以进行调用
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

3.2 由于启动类配置了扫描包位置可以扫到starter的api
【实战】SpringBoot自定义 starter及使用,Spring,开发工具,个人日记,spring boot,java,后端,starter,spring

写在最后

SpringBoot自定义 Starter及使用还是非常简单,我们在创建的时候需要注意maven插件需要增加可执行jar配置,在resource下需要指定starter的自动装配类即可,在使用starter的项目中需要按需增加扫描包以保证框架可以获取到我们的starter文件。文章来源地址https://www.toymoban.com/news/detail-813596.html

到了这里,关于【实战】SpringBoot自定义 starter及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot自定义starter

    参考文章:SpringBoot自定义starter_springboot3.0自定义starter_kksilu的博客-CSDN博客 我这里是根据上面博主的文章做的练习   DemoService: DemoConfig: Spring.factories: 安装到maven仓库 在application.properties中添加配置: 启动类测试: 最后就可以看到,控制台输出    DemoService{demo=\\\'123\\\'}    了

    2024年02月12日
    浏览(32)
  • 自定义Spring Boot Starter

    Spring Boot starter 我们知道Spring Boot大大简化了项目初始搭建以及开发过程,而这些都是通过Spring Boot提供的starter来完成的。在实际项目中一些基础模块其本质就是starter,所以我们需要对Spring Boot的starter有一个全面深入的了解,这是我们的必备知识。 starter介绍 spring boot 在配置

    2024年02月10日
    浏览(72)
  • SpringBoot中自定义starter

    一、在线创建 首先打开 https://start.spring.io 这个网站,如下: 项目构建工具是 Maven 还是 Gradle ?有人用 Gradle 做 Java 后端项目,但是整体感觉 Gradle 在 Java 后端中使用的还是比较少,Gradle 在 Android 中使用较多,Java 后端,目前来看还是 Maven 为主,因此这里选择第一项。 开发语

    2024年02月10日
    浏览(33)
  • 自定义一个springboot starter

    在我们的日常开发工作中,经常会有一些独立于业务之外的配置模块,比如阿里云oss存储的时候,我们需要一个工具类进行文件上传。我们经常将其放到一个特定的包下,然后如果另一个工程需要复用这块功能的时候,需要将代码硬拷贝到另一个工程,重新集成一遍,这样会

    2024年02月05日
    浏览(24)
  • SpringBoot之自定义starter

    目录 一、什么是SpringBoot starter机制 二、为什么要自定义starter 三、什么时候需要创建自定义starter 四、自动加载核心注解说明 五、自定义starter的开发流程 案例一:为短信发送功能创建一个starter 案例二:AOP方式统一服务日志 SpringBoot中的starter是一种非常重要的机制(自动化配

    2024年02月01日
    浏览(29)
  • 自定义 Spring Boot Starter 组件

    自定义 Spring Boot Starter 组件是为了封装和简化特定功能的配置和集成,让用户能够更容易地集成你提供的库或功能。Spring Boot Starter 组件通常包括自动配置、依赖管理和必要的配置。 下面是创建一个简单的 Spring Boot Starter 的基本步骤: 步骤: 创建一个新的 Maven 或 Gradle 项目

    2024年02月05日
    浏览(31)
  • 深入理解Spring Boot Starter:概念、特点、场景、原理及自定义starter

    在Spring框架的发展过程中,为了简化项目的搭建和配置过程,Spring Boot应运而生。Spring Boot通过提供一系列开箱即用的Starter,使得开发者能够快速整合Spring生态系统中的各种技术栈,提升开发效率。本文将深入探讨Spring Boot Starter的基本概念、主要特点、应用场景以及实现原理

    2024年02月22日
    浏览(34)
  • OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导

    SmartPerf Editor是一款PC端桌面应用,通过监测、采集应用运行时FPS、CPU、GPU、Memory、Battery、Network等性能数据,帮助开发者了解应用的性能状况。SmartPerf Editor还集成了DrawingDoc功能,可录制Render Service绘制指令,回放并生成不同图形库文件。通过逐帧逐绘制指令回放,来识别是否

    2024年04月28日
    浏览(30)
  • springboot使用postman工具或者开发者工具导出csv显示乱码

    问题:测试人员使用postman工具或者开发者工具导出csv显示乱码,但是导出的csv文件用excel打开是正常的 乱码图片: 显示正常图片: 主要原因:是我们在代码中设置返回的格式为UTF-8造成的,把这个格式设置成GBK就正常显示了(PS:csv文件创建时是以GBK的格式创建的,这就是主

    2024年02月12日
    浏览(27)
  • SpringBoot自定义starter之接口日志输出

    本文灵感来源是一道面试题。 要求做一个可以复用的接口日志输出工具,在使用时引入依赖,即可使用。 可能用在多个项目中。 问题处理思路是,自定义一个SpringBoot的Starter,可以加入一些功能配置。核心使用自定义注解、Aspect切面来做。 用切面去切你的自定义注解即可。

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包