最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

自定義配置Spring Boot Starter,了解官方、第三方starter自動(dòng)配置參數(shù)配置使用

2023-09-09 13:07 作者:step_freedom  | 我要投稿

前言

自定義starter 官方規(guī)范

命名規(guī)范

為了使用者很好的區(qū)分某個(gè)starter是官方提供的還是第三方提供的,官方對(duì)starter的命名給出了規(guī)范要求,規(guī)范格式說明如下表所示:

官方spring-boot-starter-xxx 例如:spring-boot-starter-web

自定義xxx-spring-boot-starter 例如:mybatis-spring-boot-starter

module模塊規(guī)范

官方對(duì)自定義starter module模塊做了規(guī)范,模塊主要包括自動(dòng)配置module、starter module。兩者的主要作用描述如下所示:

Autoconfigure module自動(dòng)配置module包含一切啟動(dòng)所需要的庫、配置是Starter?

starter module 代碼內(nèi)容為空,主要用來管理依賴,引用autoconfigure模塊。供其他人引用。

注意:如果管理依賴和自動(dòng)配置無需分開,可以將兩者合并到一起,只用一個(gè)spring boot項(xiàng)目即可。

主要涉及到注解

@Configuration:本注解是一個(gè)Spring Framework自定義配置注解,相當(dāng)于Spring XML 配置文件的替代方案。主要作用是配置管理各種所需要的spring bean。

@EnableConfigurationProperties和@ConfigurationProperties將外置spring 配置文件application.yml或application.properties關(guān)聯(lián)到相關(guān)的java 對(duì)象上;配置application.yml或application.properties,可以通過java 對(duì)象操作配置文件中的值。

@ConditionalOnClass和@ConditionalOnMissingBean是兩個(gè)條件化配置注解,只有在某個(gè)條件滿足時(shí),才可以去創(chuàng)建bean。

@ConditionalOnClass主要用于類路徑上,滿足條件某個(gè)條件才創(chuàng)建響應(yīng)的bean;@ConditionalOnMissingBean只有當(dāng)bean不存在時(shí)才創(chuàng)建bean;

自定義配置類自動(dòng)加載配置

將自己開發(fā)的配置類,在META-INF/spring.factories(spring-boot 2.7 以前版本)中進(jìn)行指定,然后spring boot啟動(dòng)時(shí)會(huì)自動(dòng)去加載此配置類。spring boot 根據(jù)文件中配置的org.springframework.boot.autoconfigure.EnableAutoConfiguration的key進(jìn)行自定義配置類的查找。實(shí)例如下:

spring boot 2.7即以后版本使用/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports進(jìn)行自動(dòng)配置類配置,文件內(nèi)容為類名。

自定義starter demo

本demo實(shí)現(xiàn)一下openai自動(dòng)配置starter,主要通過集成openai api 自動(dòng)配置openaiservice,獲取openaiservice對(duì)象。具體實(shí)現(xiàn)如下:

新建多模塊項(xiàng)目

新建一個(gè)openai-freedom-demo項(xiàng)目,里邊包含兩個(gè)模塊,一個(gè)模塊為openai-freedom-spring-boot-autoconfigure,主要用來自動(dòng)配置openaiservice bean,一個(gè)為openai-freedom-spring-boot-starter,主要用來管理依賴。將openai-freedom-spring-boot-autoconfigure依賴添加到starter模塊中。其他第三方引用你開發(fā)的jar時(shí),只需引用starter模塊即可,無需再引用autoconfigure模塊。

下邊為目錄結(jié)構(gòu)截圖:

父pom.xml內(nèi)容

autoconfigure pom.xml 內(nèi)容

starter pom.xml 配置內(nèi)容

配置openai自動(dòng)配置類

OpenAiProperties類,主要用來將application.yml中的配置項(xiàng)與java 實(shí)體進(jìn)行映射。

OpenAiAutoconfigure類,用來對(duì)openaiservice對(duì)象進(jìn)行配置,并初始化。

spring spi 自動(dòng)配置加載OpenAiAutoconfigure

spring boot 2.7 版本之前,使用META-INF/spring.factories配置

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.freedom.OpenAIAutoConfigure

spring boot 2.7 版本即之后,使用/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports配置

com.freedom.OpenAIAutoConfigure

兩種情況可以同時(shí)存在于你的starter中,這樣你就可以兼容兩個(gè)版本的自定義配置starter

application.properties自動(dòng)提示說明

如果想讓自定義openai的配置參數(shù)在application.propeties中,輸入前綴后能夠自動(dòng)提示,可以添加以下依賴解決。

application.properties 應(yīng)用所有參數(shù)從那找到說明

針對(duì)平時(shí)我們?cè)谂渲闷渌藢懙膕tarter時(shí),可以通過加載jar中找到對(duì)應(yīng)的properties類看里邊包含的屬性有那些,每個(gè)值的含義是什么以及如何配置。

image-20230909121335987

測試自定義openai starter

新建一個(gè)maven項(xiàng)目

引入maven 坐標(biāo)

編寫測試類

測試

image-20230909121628464

能夠輸出打印即表示自動(dòng)加載成功,對(duì)于openai 代理錯(cuò)誤問題,可以通過配置代理自行解決。


自定義配置Spring Boot Starter,了解官方、第三方starter自動(dòng)配置參數(shù)配置使用的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
文山县| 龙山县| 上高县| 莱阳市| 梓潼县| 壤塘县| 九龙县| 庐江县| 垦利县| 惠安县| 枞阳县| 石狮市| 晴隆县| 澄迈县| 龙陵县| 分宜县| 贵德县| 沂源县| 孝感市| 道真| 通化县| 界首市| 开原市| 大同市| 德安县| 江阴市| 江门市| 西畴县| 上思县| 措勤县| 横山县| 连州市| 宝鸡市| 奇台县| 陵川县| 出国| 闻喜县| 客服| 遵义市| 容城县| 苍溪县|