SpringBoot自定义配置的提示

news2025/1/18 10:00:41

文章目录

    • 1. 引入依赖
    • 2. 开启 IDEA 配置
    • 3. 使用 @ConfigurationProperties 自定义配置
    • 4. 编译项目,自动生成 spring-configuration-metadata.json 文件
      • 文件中的属性值介绍
    • 5. 可以看到有提示了

官方文档:https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/reference/html/appendix-configuration-metadata.html#configuration-metadata-annotation-processor

1. 引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

2. 开启 IDEA 配置

在 idea 设置中搜索 Annotation Processors ,接下来勾住 Enable annonation processing 就完成了。

在这里插入图片描述

3. 使用 @ConfigurationProperties 自定义配置

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

@ConfigurationProperties(prefix = "self")
@Data
public class SelfConfiguration {

    private String name;

    private Integer age;


}

需要开启自动配置(@EnableConfigurationProperties)和扫描包(@ConfigurationPropertiesScan):

@SpringBootApplication
@EnableConfigurationProperties
@ConfigurationPropertiesScan("com")
public class SpringboottestApplication {

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

}

4. 编译项目,自动生成 spring-configuration-metadata.json 文件

配置元数据文件位于jar下面。 META-INF/spring-configuration-metadata.json 它们使用简单的 JSON 格式,其中的项目分类在 groupsproperties 下,其他值提示分类在 hints

在这里插入图片描述

文件中的属性值介绍

  • name | String:
    属性的全名。名称采用小写的周期分隔形式(例如server.address)。此属性是强制性的。

  • type | String:
    属性的数据类型的完整签名(例如java.lang.String),但也是完整的泛型类型(例如java.util.Map)。
    您可以使用此属性来指导用户可以输入的值的类型。为了保持一致性,通过使用其包装对应项(例如,boolean变为java.lang.Boolean)来指定基元的类型。
    请注意,此类可能是一个复杂类型,它从Stringas绑定的值转换而来。如果类型未知,则可以省略。

  • description | String:
    可以向用户显示的组的简短描述。如果没有可用的描述,则可以省略。建议描述为简短段落,第一行提供简明摘要。描述中的最后一行应以句点(.)结尾。

  • sourceType | String:
    贡献此属性的源的类名称。例如,如果属性来自带注释的类@ConfigurationProperties,则此属性将包含该类的完全限定名称。如果源类型未知,则可以省略。
    defaultValue | Object | 默认值,如果未指定属性,则使用该值。如果属性的类型是数组,则它可以是值数组。如果默认值未知,则可以省略。

  • deprecation | Object

    • level | String
      弃用级别,可以是warning(默认)或error。当属性具有warning弃用级别时,它仍应绑定在环境中。但是,当它具有error弃用级别时,该属性不再受管理且不受约束。

    • reason | String
      该属性被弃用的原因的简短描述。如果没有可用的原因,可以省略。建议描述为简短段落,第一行提供简明摘要。描述中的最后一行应以句点(.)结尾。

    • replacement | String
      替换此不推荐使用的属性的属性的全名。如果此属性没有替换,则可以省略。

示例:从 mybatis-spring-boot-starter 里粘出来的一部分

{
  "properties": [
    {
      "sourceType": "org.apache.ibatis.session.Configuration",
      "defaultValue": "org.apache.ibatis.scripting.xmltags.XMLLanguageDriver",
      "name": "mybatis.configuration.default-scripting-language",
      "description": "A default LanguageDriver class.",
      "type": "java.lang.Class<? extends org.apache.ibatis.scripting.LanguageDriver>",
      "deprecation": {
        "reason": "Because when this configuration property is used, there is case that custom language driver cannot be registered correctly.",
        "replacement": "mybatis.default-scripting-language-driver"
      }
    }
  ]
}

5. 可以看到有提示了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器视觉(七):图像分割

目录&#xff1a; 机器视觉&#xff08;一&#xff09;&#xff1a;概述 机器视觉&#xff08;二&#xff09;&#xff1a;机器视觉硬件技术 机器视觉&#xff08;三&#xff09;&#xff1a;摄像机标定技术 机器视觉&#xff08;四&#xff09;&#xff1a;空域图像增强 …

whistle的使用【前端抓包】

前言 抓包工具看起来只是测试要用的东西&#xff0c;其实对前端作用也很多&#xff0c;因为我们也要模拟请求、mock数据、调试。站在巨人肩膀上永远不亏! whistle能解决的痛点 一、看请求不方便 跳页、支付时候上一页的请求结果看不到&#xff0c;h5、小程序newWork不能在电…

Raki的读paper小记:Continual Learning of Natural Language Processing Tasks: A Survey

第一次写综述的小记&#xff0c;也将是我读完的第一篇综述&#xff08; 最开始因为可乐老师的原因&#xff0c;接触到了持续学习&#xff0c;然后从一开始的音频到自己读了一些ICLR的paper找idea做NLP的持续学习&#xff0c;然后做了自己第一个粗糙的工作&#xff0c;在杰哥的…

Hadoop高手之路9-Azkaban工作流管理器

文章目录Hadoop高手之路9-Azkaban工作流管理器一、工作流概述1. 工作流简介2. 常见的工作流调度工具1) Azkaban2) Oozie二、Azkaban简介1. Azkaban组成结构2. Azkaban的部署模式1) solo-server mode&#xff08;独立服务器模式&#xff09;2) two server mode&#xff08;双服务…

8Manage SRM:使用采购管理软件进入现代化模式

在企业运营发展中&#xff0c;采购组织一直是一个非常重要的部门&#xff0c;它会直接影响企业的采购成本效益。在采购活动中&#xff0c;如果采用传统线下的采购方式&#xff0c;容易导致采购信息不集中&#xff0c;效率低&#xff0c;出错率高&#xff0c;最终损害企业的利益…

社区发现系列02-算法介绍

hello, 大家好&#xff0c;欢迎来到阿君聊风控&#xff0c;我是阿君&#xff08;一名有7年互金和电商风控经验的算法工程师&#xff09;。在上篇文章https://blog.csdn.net/u010569893/article/details/128565829?spm1001.2014.3001.5502 中我们了解到可以用社区发现技术来对图…

全面兼容各端的动画库PAG,对标Lottie

感谢Tencent 开源了PAG库&#xff0c;终于有了国人自己的动画库了&#xff0c;该库兼容&#xff1a;移动端&#xff0c;桌面端&#xff0c;&#xff0c;WEB端&#xff0c;还有小程序端&#xff0c;真可谓用心了&#xff0c;而且PAG库相对其他库&#xff0c;使用的pag文件更小&a…

《UEFI内核导读》SecCore与PeiCore简介(I)

敬请关注&#xff1a;“固件C字营 SecCore也被称之为VTF&#xff0c;被映射到Boot Firmware Volume (BFV)&#xff0c;BFV的地址被放置在0xFFFFFFE0连续的4个字节&#xff08;小端模式&#xff09;。 SecCore 是一个FFS firmware file&#xff0c;其文件末端地址与于BFV的末端…

磨金石教育摄影技能干货分享|摄影拼贴技法的运用与效果

河南省-黄阳惠智-《那是山吗》画面中是一片群山景象。我们看上去感觉像是画出来的&#xff0c;又像是电脑做的图。其实这是摄影师用了中国山水画的特有表现手法&#xff0c;对桂林山水的景象&#xff0c;进行了拼贴在创造。作者用一些非山非水的现代物品&#xff0c;像织女一样…

【记录一】gis理论

gis地图相关一、gis 理论知识二、fianlshell连接服务器连接服务器命令行记录三、geoserver地图服务器初识geoserver添加新图层最近图层样式修改图层样式新增编辑图层的样式四、git上传代码查看远程地址上传代码时新建tag一、gis 理论知识 二、fianlshell连接服务器 连接服务器…

【小知识点】免费头像API,用 Python Flask 动态生成一个汉字头像

本案例是 爬虫训练场 项目的衍生案例&#xff0c;用于渲染用户头像&#xff0c;大家也可以将该接口用于其它目的。 本文会使用随机汉字生成技术&#xff0c;如未掌握&#xff0c;可以查看 Python 随机生成一个汉字 文章目录基础环境配置加载本地 txt 文件&#xff0c;用于随机生…

打包安卓apk后的V1和V2签名

前言&#xff1a;打包apk后上架之前需要进行加固&#xff0c;加固后生成的apk文件需要进行重新签名&#xff1b;单独的apk文件可以使用基于JDK&#xff08;需要安装java jdk&#xff09;和SDK&#xff08;需要下载android studio 开发工具&#xff09;的命令进行手动签名。安装…

【Maven】核心概念

Maven的核心概念一、Maven工程中约定的目录结构二、仓库管理&#x1f3b6;仓库的概述&#x1f3b6;仓库的分类本地仓库所在位置的设置重写更改本地仓库路径&#xff0c;不使用默认路径有什么好处呢&#xff1f;&#x1f3b6;Maven对仓库的使用三、POM工程的唯一标识依赖&#x…

数据结构与算法:泛型初学习

1.包装类 java中的数据类型int&#xff0c;double等不是对象&#xff0c;无法通过向上转型获取到Object提供的方法&#xff0c;而像String却可以&#xff0c;只因为String是一个对象而不是一个类型。基本数据类型由于这样的特性&#xff0c;导致无法参与转型&#xff0c;泛型&…

【服务器数据恢复】Raid5丢失一块盘被重建的数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器上5块硬盘组建raid5磁盘阵列&#xff0c;用于存储公司数据&#xff0c;无备份。 服务器故障&分析&#xff1a; 服务器上一块硬盘故障掉线&#xff0c;用户聘请一家运维公司对服务器进行维护&#xff0c;运维公司技术人员在没有了…

redis 基础

Redis学习笔记配置文件启动redis与redis进行交互redis命令Redis通用命令keys 查看所有符合模板的keytype 查看这个key的存储类型![在这里插入图片描述](https://img-blog.csdnimg.cn/175e3a5c1b064ce09b9b47cc1c7b34f9.png)del 删除一个keyexists 判断一个Key是否存在ttl 查看一…

HummerRisk V0.8.0:新增金山云、K8s基准检测、源IP审计分析等

HummerRisk V0.8.0发布&#xff1a;多云检测支持金山云、K8s检测新增CIS Benchmark 功能 、操作审计增加源 IP 分析功能、主机检测增加Linux 检测规则。同时优化 operator及Benchmark 的自动/手动安装&#xff0c;优化多个结果展示页面等。 感谢社区中小伙伴们的反馈&#xff…

整型常量不同进制间的相互转换

整型常量可以分别用二进制、八进制、十进制和十六进制表示&#xff0c;不同的进制并不影响数据本身的大小&#xff0c;同一个整型常量可以在不同进制之间转换&#xff0c;具体转换方式如下。 1.十进制和二进制之间的转换 (1)十进制转二进制 十进制转换成二进制就是一个除以2…

实验用试剂mPEG-PDLLA介绍;甲氧基聚乙二醇-聚DL-丙交酯 嵌段共聚物

PLA-MPEG、peg-pla、mPEG-PDLLA 甲氧基聚乙二醇-聚乳酸、甲氧基聚乙二醇-聚DL-丙交酯 结构式&#xff1a; 【详情】 化学式&#xff1a;CH3(C2H4O)m (C6H10O2)n 溶剂&#xff1a;氯仿、二氯甲烷、丙酮、DMF、DMSO等有机溶剂。 性状&#xff1a;半固体或固体&a…

【C++核心编程】C++全栈体系(八)

C核心编程 第四章 类和对象 C面向对象的三大特性为&#xff1a;封装、继承、多态 C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 例如&#xff1a; ​ 人可以作为对象&#xff0c;属性有姓名、年龄、身高、体重…&#xff0c;行为有走、跑、跳、吃饭、唱歌… …