九、通過(guò)Nacos-2.3.2進(jìn)行服務(wù)配置

提示信息:在高版本springboot中,不自動(dòng)讀取bootstrap.yml文件了,自己用時(shí)可引入spring-cloud-starter-bootstrap包。
Nacos服務(wù)注冊(cè)發(fā)現(xiàn)參考:http://www.itdecent.cn/p/ba298e0a2eab
spring-cloud-alibaba測(cè)試的版本是:2023.0.1.2
請(qǐng)看最新文檔,最新文檔,最新文檔:https://sca.aliyun.com/docs/2023/user-guide/nacos/quick-start/

1. 服務(wù)中引入Nacos配置包

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2. nacos接入配置文件

  • 微服務(wù)配置文件:application.yml
  • 現(xiàn)在使用的nacos版本是2.3.2
  • 直接在application.yml中配置就可以
  • 配置如下:
spring:
  application:
    name: oauth2-server
  config:
      import:
        - nacos:${spring.application.name}.yaml?refreshEnabled=true
  cloud:
    nacos:
      serverAddr: 10.10.1.6:8848
      username: nacos
      password: nacos
      discovery:
        register-enabled: true
        # server-addr: 10.10.1.6:8848
        ip: 10.10.1.2

3. 在nacos中添加配置

Nacos新增配置圖
    1. Data ID命名規(guī)則:${prefix}-${spring.profiles.active}.${file-extension}
    • prefix 默認(rèn)為 spring.application.name 的值,也可以通過(guò)配置項(xiàng) spring.cloud.nacos.config.prefix來(lái)配置
    • spring.profiles.active 即為當(dāng)前環(huán)境對(duì)應(yīng)的 profile,沒(méi)有就不用配置了,有不同環(huán)境也可以放不同命名空間。注意:當(dāng) spring.profiles.active 為空時(shí),對(duì)應(yīng)的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}**
    • file-exetension 為配置內(nèi)容的數(shù)據(jù)格式,可以通過(guò)配置項(xiàng) spring.cloud.nacos.config.file-extension 來(lái)配置。目前只支持 propertiesyaml 類型
    1. Group可以使用默認(rèn)的,也可以自定義,但是要和application.yml中的group一致,(若有g(shù)ateway網(wǎng)關(guān)服務(wù),gateway服務(wù)必須要和其他微服務(wù)在同一組,才能找到路由地址
    1. 選好格式,記得Data ID中要有這個(gè)格式后綴(yamlproperties
    1. 填寫(xiě)配置信息

4. 配置自動(dòng)更新

使用Spring Cloud 原生注解 @RefreshScope,這樣通過(guò)@Value注解取到的值是更新過(guò)的(@ConfigProperties注解不是)
新版本在導(dǎo)入nacos配置的時(shí)候加了,這不加不知道可不可以。

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

  @Value("${useLocalCache:false}")
  private boolean useLocalCache;

  @RequestMapping("/get")
  public boolean get() {
      return useLocalCache;
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容