springboot讀取nacos配置文件

SpringBoot 註冊服務到 Nacos 上,由 Nacos 來做服務的管理。在 Nacos的配置列表中,管理着服務的配置文件。SpringBoot 有兩種方式來讀取配置文件的內容,一種是寫配置文件類 @ConfigurationProperties ,一種是使用 @Value 註解。

首先,Nacos 的配置文件如下:

### 配置文件使用 yml 格式, 也可以使用 properties 格式,最終 yml 格式會轉化成 properties,但是 @Value 註解### 對 yml 的list 的格式有不同,這個稍後再說。
eg: server.yml (list參數,使用逗號分隔)
  dashboard:
    emergent-info: key-1:value-1,key-2:value-2,key-3:value-3
 ### 或者這種形式 (注意縮進空格,- 後空格)    
   dashboard:
    emergent-info: 
	  - key-1:value-1
      - key-2:value-2
      - key-3:value-3       

第一種方式來解析:

@Setter
@Getter
@ConfigurationProperties("server")
public class ServerProperties {
	private List<String> dashboardEmergentInfo;
}

使用 @ConfigurationProperties 方式來解析,要對應配置文件名,對應屬性的key值順序和參數名的駝峯形式命名。配置文件類的方式,可以解析上面 list 的兩種寫法。

第二種方式來解析:

@RefreshScope
public class DashboardController{ 

@Value("${dashboard.emergent-info:}")
private List<String> emergentInfo = new ArrayList<>();

    ... 
}    

使用 @Value 註解的方式,代碼量是少了,但是解析不了上面配置文件的第二種方式,只能解析第一種使用逗號分隔的list數據。@Value裏面的冒號後面是初始化值,這裏做空處理。Nacos 修改配置文件list的內容,@Value 註解不會時時的刷新處理數據,所以在 類上加了 @RefreshScope。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章