亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot配置文件之properties和yml的使用

 更新時(shí)間:2025年05月04日 21:43:56   作者:棕豆兔&  
這篇文章主要介紹了SpringBoot配置文件之properties和yml的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、配置文件的作用

配置文件主要是為了解決硬編碼帶來的問題, 把可能會(huì)發(fā)生改變的信息,放在一個(gè)集中的地方, 當(dāng)我們啟動(dòng)某個(gè)程序時(shí), 應(yīng)用程序從配置文件中讀取數(shù)據(jù), 并加載運(yùn)行。

使用配置文件, 可以使程序完成用戶和應(yīng)用程序的交互, 或者應(yīng)用程序與其他應(yīng)用程序的交互。

SpringBoot支持并定義了配置文件的格式,也在另一個(gè)層面達(dá)到了規(guī)范其他框架集成到SpringBoot的目的。很多項(xiàng)目或者框架的配置信息也放在配置文件中, 比如:

  • 項(xiàng)目的啟動(dòng)端口;
  • 數(shù)據(jù)庫的連接信息(包含用戶名和密碼的設(shè)置);
  • 第三方系統(tǒng)的調(diào)用密鑰等信息;
  • 用于發(fā)現(xiàn)和定位問題的普通日志和異常日志等。

二、配置文件的格式

Spring Boot 配置文件有以下三種:

  • application.properties
  • application.yml
  • application.yaml

yml 為yaml的簡寫, 實(shí)際開發(fā)中出現(xiàn)頻率最高。yaml 和yml 的使用方式一樣。

NOTE:

  • 理論上講 .properties 和 .yml 可以并存在于一個(gè)項(xiàng)目中,當(dāng) .properties 和 .yml 并存時(shí),兩個(gè)配置都會(huì)加載。如果配置文件內(nèi)容有沖突,則以 .properties 為主,也就是 .properties 優(yōu)先級(jí)更高;
  • 雖然理論上來講 .properties 可以和 .yml 共存,但實(shí)際的業(yè)務(wù)當(dāng)中,通常會(huì)采取一種統(tǒng)一的配置文件格式,這樣可以更好的維護(hù)(降低故障率)。

三、properties 配置文件說明

properties 配置文件是最早期的配置文件格式,也是創(chuàng)建 SpringBoot 項(xiàng)目默認(rèn)的配置文件。

3.1 properties 基本語法

properties 是以鍵值的形式配置的,key 和 value 之間是以 "=" 連接的,如:

# 配置項(xiàng)?端?號(hào)
server.port=8080
#配置數(shù)據(jù)庫連接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?
characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

3.2 讀取配置文件

如果在項(xiàng)目中,想要主動(dòng)的讀取配置文件中的內(nèi)容,可以使用 @Value 注解來實(shí)現(xiàn)。 @Value 注解使用" ${} "的格式讀取,如下代碼所示:

properties 配置如下:

mykey.key1 = bite

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PropertiesController {
    @Value("${mykey.key1}")
    private String key1;

    @RequestMapping("/key")
    public String key(){
      return "讀取到值:"+key1;
 }
}

四、yml 配置文件說明

yml 是 YAML 是縮寫,它的全稱 Yet Another Markup Language ,翻譯就是 “另一種標(biāo)記語言“。

4.1 yml基本語法

yml 是樹形結(jié)構(gòu)的配置文件,它的基礎(chǔ)語法是"key: value"。key 和 value 之間使用英文冒號(hào)加空格的方式組成, 空格不可省略

基礎(chǔ)語法舉例如下:

spring:
 datasource:
  url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8&useSSL=false
  username: root
  password: root

4.2 yml 讀取文件

yml 讀取配置的方式和 properties 相同,使用 @Value 注解即可,實(shí)現(xiàn)代碼如下:

yml配置:

string:
 hello: bite
@RestController
public class ReadYml {
  @Value("${string.hello}")
  private String hello;

  @RequestMapping("/ymlKey")
  public String key(){
     return "讀取到值:"+hello;
  }
}

NOTE: value值加單雙引號(hào)

  • 字符串默認(rèn)不用加上單引號(hào)或者雙引號(hào),如果加英文的單雙引號(hào)可以表示特殊的含義。
  • 單引號(hào)會(huì)轉(zhuǎn)義特殊字符,使其失去特殊功能,始終是一個(gè)普通的字符串;如 \n
  • 雙引號(hào)不會(huì)轉(zhuǎn)義字符串里面的特殊字符, 特殊字符會(huì)表示本身的含義。

yml配置不同數(shù)據(jù)類型及null:

#以下格式不代表yml文件格式,只是作為說明

# 字符串
string.value: Hello
  
# 布爾值,true或false
boolean.value: true
boolean.value1: false

# 整數(shù)
int.value: 10

# 浮點(diǎn)數(shù)
float.value: 3.14159

# Null,~代表null
null.value: ~

# "" 空字符串
# 直接后?什么都不加就可以了, 但這種?式不直觀, 更多的表示是使?引號(hào)括起來
empty.value: ''

4.3 yml使用進(jìn)階

4.3.1 配置對(duì)象

在yml文件中配置對(duì)象,如下所示:

student:
 id: 1
 name: Java
 age: 18


#或者可以采用行內(nèi)寫法
student: {id: 1,name: Java,age: 18}

這個(gè)時(shí)候就不能用 @Value 來讀取配置中的對(duì)象了,此時(shí)要使用另一個(gè)注解@ConfigurationProperties 來讀取,具體實(shí)現(xiàn)如下:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "student")
@Component
@Data
public class Student {
 private int id;
 private String name;
 private int age;
}

調(diào)用類實(shí)現(xiàn)如下:

@RestController
public class StudentController {

 @Autowired
 private Student student;
 
 @RequestMapping("/readStudent")
 public String readStudent(){
     return student.toString();
 }
}

4.3.2 配置集合

配置文件也可以配置 list 集合,如下所示:

dbtypes:
 name:
  - mysql
  - sqlserver
  - db2

集合的讀取和對(duì)象一樣,也是使用 @ConfigurationProperties 來讀取的,具體實(shí)現(xiàn)如下:

@Component
@ConfigurationProperties("dbtypes")
@Data
public class ListConfig {
  private List<String> name;
}

訪問集合的實(shí)現(xiàn)如下:

@RestController
public class ReadYml2 {

 @Autowired
 private ListConfig listConfig;

 @RequestMapping("/readList")
 public String readList(){
    return listConfig.toString();
 }
}

4.3.3 配置Map

配置文件也可以配置 Map,如下所示:

maptypes:
 map:
  k1: kk1
  k2: kk2
  k3: kk3

Map的讀取和對(duì)象一樣,也是使用 @ConfigurationProperties 來讀取的,具體實(shí)現(xiàn)如下:

@Component
@ConfigurationProperties("maptypes")
@Data
public class MapConfig {
 private HashMap<String,String> map;
}

打印類的實(shí)現(xiàn)如下:

@RestController
public class ReadYml2 {

 @Autowired
 private MapConfig mapConfig;

 @RequestMapping("/readMap")
 public String readStudent(){
   return mapConfig.toString();
 }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于Spring中一級(jí)緩存、二級(jí)緩存和三級(jí)緩存的那些事

    關(guān)于Spring中一級(jí)緩存、二級(jí)緩存和三級(jí)緩存的那些事

    Spring解決循環(huán)依賴的核心思想在于提前曝,下面這篇文章主要給大家介紹了關(guān)于Spring中一級(jí)緩存、二級(jí)緩存和三級(jí)緩存的那些事,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • 一文詳解Elasticsearch和MySQL之間的數(shù)據(jù)同步問題

    一文詳解Elasticsearch和MySQL之間的數(shù)據(jù)同步問題

    Elasticsearch中的數(shù)據(jù)是來自于Mysql數(shù)據(jù)庫的,因此當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪改后,Elasticsearch中的數(shù)據(jù),索引也必須跟著做出改變。本文主要來和大家探討一下Elasticsearch和MySQL之間的數(shù)據(jù)同步問題,感興趣的可以了解一下
    2023-04-04
  • Spring boot配置 swagger的示例代碼

    Spring boot配置 swagger的示例代碼

    Swagger是一組開源項(xiàng)目,Spring 基于swagger規(guī)范,可以將基于SpringMVC和Spring Boot項(xiàng)目的項(xiàng)目代碼,自動(dòng)生成JSON格式的描述文件,接下來通過本文給大家介紹Spring boot配置 swagger的示例代碼,一起看看吧
    2021-09-09
  • JAVA遍歷Map集合的幾種方法匯總

    JAVA遍歷Map集合的幾種方法匯總

    這篇文章主要給大家介紹了關(guān)于JAVA遍歷Map集合的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用@ConfigurationProperties注解獲取為null的解決方法

    使用@ConfigurationProperties注解獲取為null的解決方法

    在SpringBoot中,當(dāng)想需要獲取到配置文件數(shù)據(jù)時(shí),除了可以用 Spring 自帶的@Value注解外,SpringBoot還提供了一種更加方便的方式:@ConfigurationProperties,但我們?cè)谕ㄟ^通過get方法去取值一直為null,本文介紹了使用@ConfigurationProperties注解獲取為null的解決方法
    2024-09-09
  • Java如何正確的使用wait-notify方法你知道嗎

    Java如何正確的使用wait-notify方法你知道嗎

    這篇文章主要為大家詳細(xì)介紹了Java如何正確的使用wait-notify方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • MyBatis配置與CRUD超詳細(xì)講解

    MyBatis配置與CRUD超詳細(xì)講解

    這篇文章主要介紹了MyBatis配置與CRUD,CRUD是指在做計(jì)算處理時(shí)的增加(Create)、讀取(Read)、更新(Update)和刪除(Delete)幾個(gè)單詞的首字母簡寫。CRUD主要被用在描述軟件系統(tǒng)中數(shù)據(jù)庫或者持久層的基本操作功能
    2023-02-02
  • 深入了解java Lombok的使用方法

    深入了解java Lombok的使用方法

    這篇文章主要介紹了深入了解java Lombok的使用,Lombok是一個(gè)通過注解以達(dá)到減少代碼的Java庫,如通過注解的方式減少get,set方法,構(gòu)造方法等,需要的朋友可以參考下
    2019-06-06
  • Java使用Sa-Token框架完成踢人下線功能

    Java使用Sa-Token框架完成踢人下線功能

    踢人下線是一個(gè)很常見的需求,本文主要介紹了Java使用Sa-Token框架完成踢人下線功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 詳解SpringBoot如何使用JWT實(shí)現(xiàn)身份認(rèn)證和授權(quán)

    詳解SpringBoot如何使用JWT實(shí)現(xiàn)身份認(rèn)證和授權(quán)

    JSON?Web?Token(JWT)是一種用于在網(wǎng)絡(luò)應(yīng)用之間安全傳遞信息的開放標(biāo)準(zhǔn),本文主要為大家介紹了如何在Spring?Boot中使用JWT實(shí)現(xiàn)身份認(rèn)證和授權(quán),需要的可以了解下
    2023-10-10

最新評(píng)論