additional-spring-configuration-metadata.json實現springboot自定義提示

? ? ? ?在配置additional-spring-configuration-metadata.json文件后,在開發人員的IDE工具使用個人編寫的配置讀取很有效的在application.propertiesapplication.yml文件下完成提示。

? ? ? 配置元數據文件位于jar下面。 META-INF/spring-configuration-metadata.json它們使用簡單的JSON格式,其中的項目分類在“groups”或“properties”下,其他值提示分類在“hints”下。

"groups": [{"name": "server","type": "org.springframework.boot.autoconfigure.web.ServerProperties","sourceType": "org.springframework.boot.autoconfigure.web.ServerProperties"}...
],"properties": [{"name": "server.port","type": "java.lang.Integer","sourceType": "org.springframework.boot.autoconfigure.web.ServerProperties"}...
],"hints": [{"name": "spring.jpa.hibernate.ddl-auto","values": [{"value": "none","description": "Disable DDL handling."},{"value": "validate","description": "Validate the schema, make no changes to the database."}]}
]}

properties表格進行配置上的含義:

名稱類型目的
nameString屬性的全名。名稱采用小寫的周期分隔形式(例如server.address)。此屬性是強制性的。
type?? ?
?
String?屬性的數據類型的完整簽名(例如java.lang.String),但也是完整的泛型類型(例如java.util.Map )。您可以使用此屬性來指導用戶可以輸入的值的類型。為了保持一致性,通過使用其包裝對應項(例如,boolean變為java.lang.Boolean)來指定基元的類型。請注意,此類可能是一個復雜類型,它從Stringas綁定的值轉換而來。如果類型未知,則可以省略。
descriptionString可以向用戶顯示的組的簡短描述。如果沒有可用的描述,則可以省略。建議描述為簡短段落,第一行提供簡明摘要。描述中的最后一行應以句點(.)結尾。
sourceTypeString貢獻此屬性的源的類名稱。例如,如果屬性來自帶注釋的類@ConfigurationProperties,則此屬性將包含該類的完全限定名稱。如果源類型未知,則可以省略。
defaultValueObject默認值,如果未指定屬性,則使用該值。如果屬性的類型是數組,則它可以是值數組。如果默認值未知,則可以省略。

groups組比properties多了一個屬性?sourceMethod

sourceMethodString獲取對象的方法的全名(包括括號和參數類型)(例如,@ConfigurationProperties注釋的@Bean方法的名稱)。如果源方法未知,則可以省略。

?案例:自定義實現mongodb信息的加載

定義配置類,使用@Component和@ConfigurationProperties注解

@Component
@Getter
@Setter
@ToString
@ConfigurationProperties(prefix = "zhong.data.mongodb")
public class MongoDbProperties {//數據庫名稱private String database;//用戶名private String username;//密碼private String password;//地址 host:portprivate String address;//設置你的認證數據庫,如果有的話private String authenticationDatabase;private MongoDbFactoryProperties mongoDbFactoryProperties;@Beanpublic MongoDbFactoryProperties getMongoDbFactory(@Autowired MongoDbFactoryProperties mongoDbFactoryProperties){return this.mongoDbFactoryProperties = mongoDbFactoryProperties;}
}

additional-spring-configuration-metadata.json的內容如下:

{"groups": [{"name": "zhong.data.mongodb.database","type": "java.lang.String","description": "mongodb的數據庫名稱","sourceType": "com.zhong.springdemo.mangodbdome.configure.MongoDbProperties"},{"name": "zhong.data.mongodb.mongoDbFactoryProperties","type": "com.zhong.springdemo.mangodbdome.configure.MongoDbFactoryProperties","description": "線程池配置信息","sourceType": "com.zhong.springdemo.mangodbdome.configure.MongoDbProperties","sourceMethod": "getMongoDbFactory()"}],"properties": [{"name": "zhong.data.mongodb.username","type": "java.lang.String","description": "mongodb的用戶名","sourceType": "com.zhong.springdemo.mangodbdome.configure.MongoDbProperties","defaultValue": ""},{"name": "zhong.data.mongodb.password","type": "java.lang.String","description": "mongodb的密碼","sourceType": "com.zhong.springdemo.mangodbdome.configure.MongoDbProperties","defaultValue": "123456"},{"name": "zhong.data.mongodb.address","type": "java.lang.String","description": "mongodb的用戶名地址","sourceType": "com.zhong.springdemo.mangodbdome.configure.MongoDbProperties","defaultValue": "127.0.0.1:27017"}],"hints": []
}

這樣我們在application.proerties或application.yaml時使用了。

? ? ? ?需要注意的是,如果需要將我們自定義的設置加載容器中,則需要保證在程序啟動時能掃描到指定的jar包路徑。

方法是:在@SpringBootApplication注解中配置scanBasePackages

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, MongoAutoConfiguration.class,MongoDataAutoConfiguration.class}, scanBasePackages = {"com.zhong.springdemo.mangodbdome"})
@EnableSwagger2Doc
public class WebDemoApplication {public static void main(String[] args){SpringApplication.run(WebDemoApplication.class, args);}
}

參考:

Appendix?B.?Configuration Metadata

springboot之additional-spring-configuration-metadata.json自定義提示 - Purgeyao - 博客園

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896486.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896486.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896486.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Dify在Ubuntu20.04系統的部署

文章目錄 一、dify 介紹1.核心功能優勢2.應用場景 二、dify 安裝(docker方式)1.代碼庫下載2.配置文件修改3.啟動docker 容器 三、遇到問題與解決1.使用sudo docker compose up -d報錯2.使用service docker start報錯 一、dify 介紹 Dify 是一款開源的大語言模型(LL…

kafka-關于ISR-概述

一. 什么是ISR ? Kafka 中通常每個分區都有多個副本,其中一個副本被選舉為 Leader,其他副本為 Follower。ISR 是指與 Leader 副本保持同步的 Follower 副本集合。ISR 機制的核心是確保數據在多個副本之間的一致性和可靠性,同時在 …

1_安裝JDK和Hadoop

一、解壓jdk和hadoop安裝包 下載 通過百度網盤分享的文件:jdk-8u172-linux-x64.tar.gz 鏈接:https://pan.baidu.com/s/1VjhdpfyqdC7ivEBIjTn8tA 提取碼:iz25 二、配置環境變量 vi /root/.bashrc添加 #set java environment export JAVA_H…

.Net 9下使用Tensorflow.net---DNN_Keras

.Net 9下使用Tensorflow.net---DNN_Keras 1、創建應用,導入依賴2、編寫代碼1)添加引用2)創建基礎對象3)初始化數據集4)重點步驟:創建 Keras下的DNN模型5)訓練模型得到評估值6)結果輸…

邊緣計算收益低的三大指標

邊緣計算收益低的三大指標主要包括以下方面: 1. 資源貢獻不足: 邊緣計算的收益通常基于所提供的帶寬、存儲和計算資源來計算。如果設備的網絡帶寬有限、在線時間短或提供的存儲容量較小,可能無法滿足平臺設定的最低貢獻標準,從而導…

重大更新!鋰電池剩余壽命預測新增 CALCE 數據集

往期精彩內容: 單步預測-風速預測模型代碼全家桶-CSDN博客 半天入門!鋰電池剩余壽命預測(Python)-CSDN博客 超強預測模型:二次分解-組合預測-CSDN博客 VMD CEEMDAN 二次分解,BiLSTM-Attention預測模型…

開發一個交易所需要哪些技術?

在當今數字化時代,交易所作為金融市場的重要組成部分,其技術架構和功能的復雜性日益增加。無論是傳統的股票、期貨交易所,還是新興的數字貨幣交易所,開發一個高效、安全、可靠的交易所系統都是一個復雜而系統的工程。本文將深入探…

Java語言Leetcode中常用的一些基礎語法

文章目錄 Java語言Leetcode中常用的一些基礎語法棧與隊列棧隊列 類型轉換字符串與字符數組的轉換數組與 List 的轉換 排序使用 Collections.sort()使用 List.sort()自定義對象排序 Java語言Leetcode中常用的一些基礎語法 棧與隊列 棧 在Java中,棧通常可以通過 ja…

C++ STL(三)list

目錄 list是什么 構造函數 元素訪問 容量操作 修改 迭代器 code實例 實現簡單的list forward_list是什么 構造函數 元素訪問 容量 修改 迭代器 code實例 實現一個簡單的forward_list list是什么 std::list 是 C 標準模板庫(STL)中的一個…

【Maui】系統找不到指定的文件Xamarin.Android.Aapt2.targets

文章目錄 前言一、問題描述二、解決方案三、軟件開發(源碼)四、項目展示 前言 .NET 多平臺應用 UI (.NET MAUI) 是一個跨平臺框架,用于使用 C# 和 XAML 創建本機移動和桌面應用。 使用 .NET MAUI,可從單個共享代碼庫開發可在 And…

sql server 復制從備份初始化數據

參考 : 從備份初始化訂閱(事務) - SQL Server | Microsoft Learn sql server 復制默認是用快照初始化數據的,也支持從備份初始化數據,參考如上

GDidees CMS v3.9.1本地文件泄露漏洞(CVE-2023-27179)

漏洞簡介: GDidees CMS v3.9.1及更低版本被發現存在本地文件泄露漏洞,漏洞通過位于 /_admin/imgdownload.php 的 filename 參數進行利用。 漏洞環境: 春秋云鏡中的漏洞靶標,CVE編號為CVE-2023-27179 漏洞復現: 進入靶場發現沒…

Redis面試題----MySQL 里有 2000w 數據,Redis 中只存 20w 的數據,如何保證 Redis 中的數據都是熱點數據?

要保證 Redis 中存儲的 20w 數據都是熱點數據,可以從數據篩選和數據淘汰兩個大的方面來考慮,以下是詳細的實現思路和方法: 數據篩選 1. 基于業務規則 分析業務場景:不同的業務場景有不同的熱點數據特征。例如,在電商…

【問題記錄】Go項目Docker中的consul訪問主機8080端口被拒絕

【問題記錄】Go項目Docker中的consul訪問主機8080端口被拒絕 問題展示解決辦法 問題展示 在使用docker中的consul服務的時候,通過命令行注冊相應的服務(比如cloudwego項目的demo_proto以及user服務)失敗。 解決辦法 經過分析,是…

【第十節】C++設計模式(結構型模式)-Flyweight( 享元)模式

目錄 一、問題背景 二、模式選擇 三、代碼實現 四、總結討論 一、問題背景 享元模式(Flyweight Pattern)在對象存儲優化中的應用 在面向對象系統的設計與實現中,創建對象是最常見的操作之一。然而,如果一個應用程序使用了過多…

spring boot 2.7 + seata +微服務 降級失敗問題修復

文章引流 一個簡單而使用的API管理工具 版本號 spring boot 2.7.17 spring-cloud-dependencies 2021.0.8 spring-cloud-circuitbreaker-resilience4j 2.1.7 spring-cloud-starter-alibaba-seata 2021.1 jdk 1.8原因分析 未配置屬性 feign.circuitbreaker.enabledtrue # 未…

實現實時數據倉庫開源項目

根據你的需求,以下是一些可以實現類似 ClickHouse 的實時數倉功能的項目,這些項目提供了高性能的數據處理和分析能力,適合實時數據倉庫的場景: 1. Apache Doris Apache Doris 是一個開源的實時數據倉庫,支持高吞吐量…

【字符串】最長公共前綴 最長回文子串

文章目錄 14. 最長公共前綴解題思路:模擬5. 最長回文子串解題思路一:動態規劃解題思路二:中心擴散法 14. 最長公共前綴 14. 最長公共前綴 ? 編寫一個函數來查找字符串數組中的最長公共前綴。 ? 如果不存在公共前綴,返回空字符…

Maven的傳遞性、排除依賴、生命周期、插件

一、Maven的傳遞性 藍色背景中的兩個jar包是projectA的直接依賴,其余的Jar包是projectA的間接依賴。 projectA可以使用直接依賴,也可以使用間接依賴。 maven-projectB項目引入了maven-projectC(整個項目打成了jar包)和junit兩個jar包。 ma…

API,URL,Token,XML,JSON是干嘛的

API,URL,Token,XML,JSON是干嘛的 API的作用 API(Application Programming Interface,應用程序編程接口)是一組定義和協議,用于構建和交互軟件應用程序。API允許不同的軟件系統之間…