成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SpringBoot讀取.yml配置文件最常見的兩種方式-源碼及其在Nacos的應(yīng)用

開發(fā) 架構(gòu)
咱們今天就來(lái)說(shuō)一說(shuō)讀取配置文件中的值常見的兩種方法,剛剛說(shuō)的動(dòng)態(tài)更新配置的是第二種配置哈!

一、前言

我們?cè)陂_發(fā)中會(huì)經(jīng)常遇到一些可能會(huì)變的值,比如數(shù)據(jù)庫(kù)的密碼,一些關(guān)鍵鏈接的配置等等。

都需要我們寫在配置文件中,這樣可以把這些配置文件放到nacos上進(jìn)行管理,修改nacos的配置,咱們發(fā)布的包就可以動(dòng)態(tài)的進(jìn)行更新了,不需要重新修改打包在重新發(fā)包!

咱們今天就來(lái)說(shuō)一說(shuō)讀取配置文件中的值常見的兩種方法,剛剛說(shuō)的動(dòng)態(tài)更新配置的是第二種配置哈!@Value("${school.teacher}")不會(huì)動(dòng)態(tài)更新,所以小編推薦使用第二種方式@ConfigurationProperties(prefix = "school")進(jìn)行讀取配置文件!下面小編 也會(huì)帶大家一起演示一下不需要重啟項(xiàng)目就可以動(dòng)態(tài)的更新,在生產(chǎn)上非常的好用!

二、第一種方式

第一種方式比較場(chǎng)景,也是最簡(jiǎn)單的,就是@Value($(配置文件中的參數(shù)))。

我們首先在application.yml文件中寫一個(gè)配置:

school:
teacher: 王老師
student: 小明

?這里key的冒號(hào)后面一定要有個(gè)空格,字符串不需要加雙引號(hào)!

我們?yōu)榱朔奖阒苯釉赾ontroller進(jìn)行演示了!!

@RestController
@RequestMapping("/test")
@Slf4j
@RequiredArgsConstructor
public class TestController {

@Value("${school.teacher}")
private String teacher;

@Value("${school.student}")
private String student;

@GetMapping("/testValue")
public Result testValue(){
return Result.success(teacher + "--->" + student);
}
}

我們debug看一下是否可以讀取到配置中的值!

圖片

我們可以看到是有值的!

三、第二種方式(推薦)

這種方式是小編比較推薦的,雖然看似比@Value麻煩不少,但是更加的規(guī)范,在配合nacos的時(shí)候也可以動(dòng)態(tài)的修改,會(huì)立即生效,一會(huì)小編帶大家試一下哈!!為什么推薦這種方式呢,是因?yàn)閟pring他們都是使用這種方式進(jìn)行配置的,所以跟著官方走不會(huì)有錯(cuò)的!

1、修改yml文件

我們剛剛修改了一下yml配置文件,讓類型更加豐富!

school:
teacher: 王老師
studentList:
- 小明
- 小剛

2、編寫讀取映射的類

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author wangzhenjun
* @date 2022/8/17 9:04
*/
// 要交給spring容器,不然獲取不到值
@Component
// 配置讀取yml文件中前綴以 school開頭的配置可以全部讀取
@ConfigurationProperties(prefix = "school")
// 要有g(shù)et方法,不然無(wú)法獲取值
@Data
public class School {

// 名稱要與yml一致
private String teacher;

private List<String> studentList;
}

3、在Controller進(jìn)行測(cè)試

@RestController
@RequestMapping("/test")
@Slf4j
@RequiredArgsConstructor
public class TestController {

@Autowired
private School school;

@GetMapping("/testProperties")
public void testProperties(){
log.info("讀取yml的school對(duì)象:{}",school);
}
}

4、debug進(jìn)行看一下

圖片

5、為什么推薦第二種方式

我們找到y(tǒng)ml文件,按住Ctrl鼠標(biāo)點(diǎn)擊port,進(jìn)去看一下spring官方是怎么配置的!

圖片

我們來(lái)到ServerProperties這個(gè)配置類上看到:

public void setPort(Integer port) {
this.port = port;
}

我們發(fā)現(xiàn)port是一個(gè)成員變量,我們直接看一下這個(gè)類吧!

@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true)
public class ServerProperties {
/**
* Server HTTP port.
*/
private Integer port;
}

我們看到spring也是使用第二種方式進(jìn)行讀取yml的內(nèi)容的!

四、驗(yàn)證第二種方式實(shí)時(shí)更新

nacos這里小編就不帶大家整合到項(xiàng)目中了,小編直接演示效果哈!

1、nacos上配置yml

school:
teacher: 王老師
studentList:
- 小明
- 小剛

圖片

讀取的配置和第二種方式那個(gè)School一樣!

2、Controller獲取

@RestController
@RequiredArgsConstructor
@RequestMapping("/zone")
public class ZoneController {
@Autowired
private School school;

@GetMapping("/test")
public R test() {
return R.ok(school);
}

3、postman測(cè)試

圖片

4、修改配置

我們修改配置不重啟項(xiàng)目:

圖片

在次測(cè)試:

圖片

大功告成!完結(jié)撒花嘍!!

五、總結(jié)

第二種方式:@ConfigurationProperties是非常推薦大家使用的,能夠規(guī)范和生產(chǎn)環(huán)境中動(dòng)態(tài)生效!真的很香啊!項(xiàng)目中的@Value()去修改修改吧!!如果不需要?jiǎng)討B(tài)更新的,看個(gè)人情況修改哈!

責(zé)任編輯:姜華 來(lái)源: 小王博客基地
相關(guān)推薦

2010-08-06 09:38:11

Flex讀取XML

2010-08-02 16:58:08

Flex配置文件

2009-06-02 14:12:26

Hibernate配置文件格式

2009-06-25 13:43:00

Buffalo AJA

2022-01-26 00:36:24

vue組件化通信

2019-08-09 09:00:40

cp命令BashLinux

2023-05-31 19:10:31

2021-05-27 10:57:01

TCP定時(shí)器網(wǎng)絡(luò)協(xié)議

2010-03-29 18:31:09

Nginx配置

2023-08-07 16:14:32

propertiesSpring框架

2010-10-21 16:24:18

sql server升

2023-03-29 13:06:36

2025-01-16 08:38:34

2021-06-30 07:19:34

SpringBoot定時(shí)任務(wù)

2022-01-17 09:01:41

Pythonnc文件Python基礎(chǔ)

2010-08-03 09:20:33

Flex讀取XML配置

2025-04-07 01:11:00

右值C++泛型

2015-10-30 11:22:44

文件哈希校驗(yàn)方式Windows

2021-11-04 07:41:38

Java Sisyphus Java 基礎(chǔ)

2011-03-03 10:26:04

Pureftpd
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品视频一区二区三区 | 一级毛片视频在线 | 欧美成年人网站 | 欧美高清免费 | 色综合久 | 国产精品成人一区二区 | 91精品国产综合久久精品 | 中文字幕在线一 | 午夜免费影视 | 国产午夜在线观看 | 三级黄色片在线播放 | 天天射天天干 | 一区二区三区亚洲 | 日韩成人在线电影 | 久久久网 | 欧美一区二区三区久久精品 | 羞羞的视频在线看 | 国外成人在线视频 | 日韩视频在线免费观看 | 国产xxxx搡xxxxx搡麻豆 | 99精品视频在线观看 | 一区二区三区av | 自拍偷拍第一页 | www.久久久久久久久久久久 | 欧美极品在线 | 国产在线拍偷自揄拍视频 | 看羞羞视频免费 | 国产午夜在线 | 久久亚洲国产 | 亚洲精品在线观看网站 | 国产丝袜一区二区三区免费视频 | 国产一区二区电影 | 国产精品久久久久免费 | 免费一区二区三区 | 欧美一级免费片 | 精品久久久久久久久久久久久久 | 蜜桃av鲁一鲁一鲁一鲁 | 一区二区在线免费观看视频 | 91天堂网 | 精品欧美一区二区三区 | 久草新在线 |