码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spring Boot 系列三:如何自定义一个SpringBoot Srarter


     前言:

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

    目录

    如何自定义一个SpringBoot Srarter?

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

    编写配置文件

    自动装配

    配置自动类

    测试


    如何自定义一个SpringBoot Srarter?

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

    1.         <dependency>
    2.             <groupId>org.springframework.bootgroupId>
    3.             <artifactId>spring-boot-starterartifactId>
    4.         dependency>
    5.         <dependency>
    6.             <groupId>org.springframework.bootgroupId>
    7.             <artifactId>spring-boot-configuration-processorartifactId>
    8.             <optional>trueoptional>
    9.         dependency>
    1. 编写配置文件

      这里定义了属性配置的前缀

      1. @ConfigurationProperties(prefix = "hello")
      2. public class HelloProperties {
      3.     private String name;
      4.     //省略getter、setter
      5. }
    2. 自动装配

      创建自动配置类HelloPropertiesConfigure

      1. @Configuration
      2. @EnableConfigurationProperties(HelloProperties.class)
      3. public class HelloPropertiesConfigure {
      4. }
    3. 配置自动类

      在/resources/META-INF/spring.factories文件中添加自动配置类路径

      1. org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
      2.   cn.fighter3.demo.starter.configure.HelloPropertiesConfigure
    4. 测试

      至此,随手写的一个自定义SpringBoot-Starter就完成了,虽然比较简单,但是完成了主要的自动装配的能力。

      • 创建一个工程,引入自定义starter依赖

        1.         <dependency>
        2.             <groupId>cn.fighter3groupId>
        3.             <artifactId>demo-spring-boot-starterartifactId>
        4.             <version>0.0.1-SNAPSHOTversion>
        5.         dependency>
      • 在配置文件里添加配置

        hello.name=张三
        
      • 测试类

        1. @RunWith(SpringRunner.class)
        2. @SpringBootTest
        3. public class HelloTest {
        4.     @Autowired
        5.     HelloProperties helloProperties;
        6.     @Test
        7.     public void hello(){
        8.         System.out.println("你好,"+helloProperties.getName());
        9.     }
        10. }
      • 运行结果

                                                         运行结果

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

  • 相关阅读:
    java: 不兼容的类型: org.apache.xmlbeans.XmlObject无法转换为x2006.main.CTRow
    基于Java的酒店管理系统设计与实现
    ”杠铃“策略:关于市场的一点思考,从转债到股票量化投研
    【sklearn | 3】时间序列分析与自然语言处理
    代码随想录算法训练营第四十四天 | 416. 分割等和子集
    【10天Unity入门计划】界面介绍(2)-Games视图&Hierarchy&Project&Inspector
    Spring整合Web环境
    Qt翻译(本地化)坑总结
    二进制中1的个数 C++实现
    字符串7——重复的子字符串
  • 原文地址:https://blog.csdn.net/m0_63722685/article/details/126082845
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号