Spring Boot 系列三:如何自定义一个SpringBoot Srarter

简介: ​目录如何自定义一个SpringBoot Srarter?首先创建一个项目,命名为demo-spring-boot-starter,引入SpringBoot相关依赖        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter</artifactId>        </dependency>        <dependency>            <groupId>org.spr

前言

上一期我们通过学习知道了自动配置原理,其实创建一个自定义SpringBoot Starter也很简单。

目录

如何自定义一个SpringBoot Srarter?

首先创建一个项目,命名为demo-spring-boot-starter,引入SpringBoot相关依赖

编写配置文件

自动装配

配置自动类

测试


如何自定义一个SpringBoot Srarter?

首先创建一个项目,命名为demo-spring-boot-starter,引入SpringBoot相关依赖

<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>

image.gif

    1. 编写配置文件
      这里定义了属性配置的前缀
    @ConfigurationProperties(prefix = "hello")
    public class HelloProperties {
        private String name;
        //省略getter、setter
    }
    1. image.gif
    2. 自动装配
      创建自动配置类HelloPropertiesConfigure
    @Configuration
    @EnableConfigurationProperties(HelloProperties.class)
    public class HelloPropertiesConfigure {
    }
    1. image.gif
    2. 配置自动类
      /resources/META-INF/spring.factories文件中添加自动配置类路径
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
      cn.fighter3.demo.starter.configure.HelloPropertiesConfigure
    1. image.gif
    2. 测试至此,随手写的一个自定义SpringBoot-Starter就完成了,虽然比较简单,但是完成了主要的自动装配的能力。
      • 创建一个工程,引入自定义starter依赖
      <dependency>
                  <groupId>cn.fighter3</groupId>
                  <artifactId>demo-spring-boot-starter</artifactId>
                  <version>0.0.1-SNAPSHOT</version>
              </dependency>
      • image.gif
      • 在配置文件里添加配置
      hello.name=张三
      • image.gif
      • 测试类
      @RunWith(SpringRunner.class)
      @SpringBootTest
      public class HelloTest {
          @Autowired
          HelloProperties helloProperties;
          @Test
          public void hello(){
              System.out.println("你好,"+helloProperties.getName());
          }
      }
      • image.gif
      • 运行结果


        image.gif编辑                                                 运行结果

        本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~

        相关文章
        |
        11月前
        |
        前端开发 Java 应用服务中间件
        《深入理解Spring》 Spring Boot——约定优于配置的革命者
        Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
        |
        11月前
        |
        前端开发 Java 微服务
        《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
        Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
        |
        11月前
        |
        XML Java 应用服务中间件
        【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
        SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
        848 2
        |
        12月前
        |
        人工智能 Java 机器人
        基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
        Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
        7629 2
        基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
        存储 JSON Java
        1047 0
        |
        监控 安全 Java
        使用 @HealthEndpoint 在 Spring Boot 中实现自定义健康检查
        Spring Boot 通过 Actuator 模块提供了强大的健康检查功能,帮助开发者快速了解应用程序的运行状态。默认健康检查可检测数据库连接、依赖服务、资源可用性等,但在实际应用中,业务需求和依赖关系各不相同,因此需要实现自定义健康检查来更精确地监控关键组件。本文介绍了如何使用 @HealthEndpoint 注解及实现 HealthIndicator 接口来扩展 Spring Boot 的健康检查功能,从而提升系统的可观测性与稳定性。
        809 0
        使用 @HealthEndpoint 在 Spring Boot 中实现自定义健康检查
        |
        人工智能 Java 开发者
        【Spring】原理解析:Spring Boot 自动配置
        Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
        3065 0
        |
        Java 应用服务中间件 Maven
        传统maven项目和现在spring boot项目的区别
        Spring Boot:传统 Web 项目与采用 Spring Boot 项目区别
        962 0
        传统maven项目和现在spring boot项目的区别
        |
        XML Java 数据库连接
        创建springboot项目的基本流程——以宠物类别为例
        创建springboot项目的基本流程——以宠物类别为例
        383 0
        创建springboot项目的基本流程——以宠物类别为例
        |
        存储 机器学习/深度学习 IDE
        SpringBoot 项目与被开发快速迁移|学习笔记
        快速学习 SpringBoot 项目与被开发快速迁移
        SpringBoot 项目与被开发快速迁移|学习笔记