国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)遵守國家法律
乡城县| 台东市| 成武县| 栾川县| 疏勒县| 银川市| 金堂县| 宁陵县| 奉节县| 隆回县| 普兰县| 融水| 沙坪坝区| 江陵县| 北安市| 平利县| 虞城县| 华宁县| 峡江县| 焦作市| 隆化县| 镇江市| 怀宁县| 郸城县| 襄垣县| 安吉县| 敦化市| 宁河县| 大足县| 雅江县| 临汾市| 云梦县| 景宁| 荆门市| 邢台县| 旺苍县| 积石山| 湖州市| 西丰县| 伊川县| 桐城市|