日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

class路径快捷 xml配置_SpringBoot 配置文件详解(告别XML)-class文件

發布時間:2023/12/19 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 class路径快捷 xml配置_SpringBoot 配置文件详解(告别XML)-class文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習目標

快速學會和掌握 SpringBoot 的 核心配置文件的使用。

快速查閱外部配置: Externalized Configuration

默認屬性列表:Common Application properties

智能提示:IDEA With Yaml Plugin

學習目錄一、基本介紹

二、快速添加屬性

四、快速讀取屬性(基于注解)

五、默認加載路徑

六、使用YAML代替Properties(推薦)

七、命令行參數

一、基本介紹

SpringBoot 提供了豐富的 外部配置,常見的有:核心配置文件

application.properties

application.yml

命令行參數

OS環境變量

Dev屬性

其中核心配置文件我們并不陌生,主要以Key-Value的形式進行配置,其中屬性Key主要分為兩種:默認屬性:根據 《默認屬性列表》 填寫,SpringBoot將自動讀取配置和進行初始化。

自定義屬性:根據需求任意填寫,但需要自行讀取配置和進行初始化。

如圖所示:

二、添加默認屬性

在 application.properties 添加配置如下:

① 添加數據源信息

spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE

spring.datasource.username=admin

spring.datasource.password=admin

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver溫馨提示:有小伙伴反饋說上面的默認屬性容易寫錯,這里推薦大家使用IDEA開發工具,因為其內置插件可自動提示并識別《默認屬性列表》,免除查閱資料的煩惱。PS:初學者可查閱 《IntelliJ IDEA 使用教程(2019圖文版) -- 從入門到上癮》 快速上手。

三、添加自定義屬性

在 application.propertis 添加配置如下:

① 添加認證信息,其中 socks.indentity.* 是自定義的屬性前綴。

socks.identity.number=441881199610245710

socks.identity.name=socks

socks.identity.address=beijing load

② 添加隨機值,其中spring.test.* 是自定義的屬性前綴。

spring.test.my-id1=${random.int}

spring.test.my-id2=${random.int(10)}

spring.test.my-id3=${random.int[10,20]}

spring.test.my-id4=${random.long}

spring.test.my-name= ${random.value}

spring.test.my-uuid=${random.uuid} #生成UUID注:核心配置文件Properties和Yaml 兩者都支持使用屬性占位符${param}來填值,例如${random.int}就是在Environment預先定義的屬性值,詳情可查閱 RandomValuePropertySource。

四、讀取屬性

1. 使用@ConfigurationProperties 讀取多個屬性

使用方法:@ConfigurationProperties(prefix = "spring.datasource")

使用說明:提供 Setter方法 和 標記組件 Component

@Component

@ConfigurationProperties(prefix = "spring.datasource")

public class MyDataSource {

private String url;

private String username;

private String password;

private String driverClassName;

// 提供Setter 和 Getter 方法

}

如何驗證是否成功讀取配置?答:這里可以簡單做個驗證,注入MyDataSource,使用Debug模式可以看到如下信息:

讀取配置成功注: 嘿嘿,你現在能大概猜到為什么SpringBoot 應用能夠根據默認屬性來自動配置數據源了吧?因為內置的數據源類DataSourceProperties通過@ConfigurationProperties(prefix = "spring.datasource")讀取到了我們在配置文件填寫的數據源信息,然后通過DataSourceAutoConfiguration 創建了數據源Bean和進行了相關初始化配置。

2. 使用@Value 讀取單個屬性

使用方法:@Value("spring.datasource.*")

使用說明:提供 Setter方法 和 標記組件 Component

@Component

public class MyDataSource {

@Value("spring.datasource.url")

private String url;

@Value("spring.datasource.username")

private String username;

@Value("spring.datasource.password")

private String password;

@Value("spring.datasource.driver-class-name")

private String driverClassName;

// 提供Setter 和 Getter 方法

}

注意事項:@Value不支持注入靜態變量,可間接通過Setter注入來實現。

private static String siteUrl;

@Value("${my.url}")

public void setSiteUrl(String myUrl) {

System.out.println(myUrl);

siteUrl = myUrl;

}

3. 關于@ConfigurationProperties和@Value的區別

關于兩者的簡單功能對比:

顯然,前者支持松綁定的特性更強大,所以在實際開發中建議使用@ConfigurationProperties來讀取自定義屬性。

五、 默認加載路徑

SpringBoot 默認會加載這些路徑加載核心配置文件,按優先級從高到低進行排列:具體規則詳見 ConfigFileApplicationListener工程根目錄的config目錄:file:./config/

工程根目錄:file:./

類路徑的config目錄:classpath:/config/

類路徑:classpath:/ (推薦使用)

如果存在多個配置文件,則嚴格按照優先級進行覆蓋,最高者勝出:

舉個簡單的例子,例如再上述位置都有一個application.properties ,并且每個文件都寫入了server.port=xx (xx分別是9001,9002,9003,9004),在啟動成功之后,最終應用的端口為:9004。圖例:

如果想修改默認的加載路徑 或者 調改默認的配置文件名,我們可以借助命令行參數進行指定,例如:

java -jar demo.jar --spring.config.name=app --spring.config.location=classpath:/myconfig/注:不管 spring.config.location 配置什么值,默認總會按照 classpath:,classpath:/config,file:,file:config/ 的順序進行搜索,優先級由低到高,也就是 file:config/ 獲勝。如果你指定自己的位置,它們會優先于所有的默認位置,并使用相同的由低到高的優先級順序。詳見SpringBoot Custom-Config

六、使用YAML代替Properties

1. 基本介紹

YAML是JSON的一個超集,是一種可輕松定義層次結構的數據格式。

2. 為什么推薦YAML?

答: 因為配置文件這東西,結構化越早接觸越規范越好。這里推薦閱讀阮一峰老師寫的YAML語言教程 ,寫的很簡單明了。

3. 如何使用YAML

引入依賴:在POM文件引入snakeyaml 的依賴。注:spring-boot-starter-xxx 會自動引入該依賴。

使用說明:直接在類路徑添加application.yml 即可。

4. YAML和Properties的使用對比

例如下面這兩段配置是完全等價的:

① 在application.yml 配置數據源:

spring:

datasource:

url: jdbc:oracle:thin:@localhost:1521:XE

username: admin

password: admin

driver-class-name: oracle.jdbc.driver.OracleDriver

② 在application.properties 配置數據源:

spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE

spring.datasource.username=admin

spring.datasource.password=admin

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver注:雖然application.yml和application.properties語法上存在差異,但實際效果相同,因為內置的YamlPropertySourceLoader 會將application.yml 的屬性通過PropertySource導入到Environment上下文 。

5. Yaml支持多環境配置

在項目的實際開發中,我們往往需要根據不同的環境來加載不同的配置文件。例如生產環境,測試環境和開發環境等。此時,我們可以借助Profiles來指定加載哪些配置文件。例如:

application.yml 配置如下:

spring:

profiles:

active: test # 選擇加載文件application-{test}.yml

application-prod.yml 配置如下:

server:

port: 9001 #生產環境端口

application-test.yml 配置如下:

server:

port: 8081 #測試環境端口

溫馨提示:如果spring.profiles.active指定了多個配置文件,則按順序加載,其中最后的優先級最高,也就是最后的會覆蓋前者。

七、命令行參數

使用方法:

使用Maven插件打包好項目,然后在當前路徑,執行DOS命令: java -jar demo.jar --server.port=8081,在控制臺可看到應用端口變成了8081。

實現原理:

默認情況下,SpringBoot會將這些命令行參數轉化成一個 Property ,并將其添加到Environment上下文。

溫馨提示:

由于命令行參數優先級非常之高,基本高于所有常見的外部配置,所以使用的時候要謹慎。詳見PropertySource 執行順序。

關閉方法:

如果想禁用命令行屬性,可以設置如下操作:springApplication.setAddCommandLineProperties(false)

總結

以上是生活随笔為你收集整理的class路径快捷 xml配置_SpringBoot 配置文件详解(告别XML)-class文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。