如何在yml配置文件中使用中文注解
yml配置文件中使用中文注解
問(wèn)題
我們?cè)趛ml中寫注解一般是這樣的 #xxxx
當(dāng)我們啟動(dòng)時(shí)我們會(huì)遇到這樣的問(wèn)題
Failed to load property source from
'file:/D:/idea/bonc/server/monitor-streaming/target/classes/application.yml'
(classpath:/application.yml)
根本原因
因?yàn)槲覀冊(cè)诘膟ml的文件格式時(shí)GBK的 我們的中文注釋在target文件中是亂碼的
解決
修改文件格式 文件格式都改為UTF-8

yml配置文件簡(jiǎn)單語(yǔ)法及小坑
yml文件使用方法
1-語(yǔ)法
K : (空格)V
表示一對(duì)鍵值對(duì),以空格縮進(jìn)來(lái)控制層級(jí)關(guān)系,只要左對(duì)齊的一列數(shù)據(jù),都是一個(gè)層級(jí)的。屬性和值是大小寫敏感
2-寫法
普通值
- 字符串默認(rèn)不加單引號(hào)或者雙引號(hào);
- 雙引號(hào),不會(huì)轉(zhuǎn)義字符串里面的特殊字符,特殊字符會(huì)作為本身想表示的意思
- 單引號(hào):會(huì)轉(zhuǎn)義特殊字符,特殊字符只會(huì)是一個(gè)普通的字符串?dāng)?shù)據(jù)
- 特殊情況:如 00013 ,類似的數(shù)值要加上單引號(hào),否則讀取時(shí)會(huì)出錯(cuò)。
對(duì)象,map(屬性和值) (鍵值對(duì))
user:
userName: "小明"
boss: true
birth: 2022/07/13
age: 20
##============行內(nèi)寫法
user:{userName: "小明",boss: true,birth: 2022/07/13,age: 20}數(shù)組(List,Set)
用 - 值 表示數(shù)組中的一個(gè)元素
pets: ?? ?- cat ?? ?- dog ?? ?- pig #=====行內(nèi) pets: [cat,dog,pig]
舉個(gè)栗子:
pet實(shí)體
package cn.maggie.bussiness.entity;
import lombok.Data;
import lombok.ToString;
@Data
@ToString
public class Pet {
? ? /**
? ? ?* 名字
? ? ?*/
? ? private String name;
? ? /**
? ? ?* 體重w
? ? ?*/
? ? private String ?weight;
}user實(shí)體–讀取配置組件
package cn.maggie.bussiness.entity;
import lombok.Data;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Component
@Data
@ToString
@ConfigurationProperties(prefix = "user")
public class User {
? ? private String ?userName;
? ? private Boolean ?boss;
? ? private Date ?birth;
? ? private Integer age;
? ? private Pet ?pet;
? ? private String [] interests;
? ? private List<String> animal;
? ? private Map<String,Object> score;
? ? private Set<BigDecimal> salary;
? ? private Map<String ,List<Pet>> allPets;
}yml文件
user:
? userName: "小明"
? boss: true
? birth: 2022/07/13
? age: 20
?# 數(shù)組 ?2種寫法
# ?interests: [打球,旅游]
? interests:
? ? - '喝水'
? ? - 睡覺
? animal:
? ? - 阿貓
? ? - 阿狗
?# ?map集合 ?2種寫法
# ?score: [math: 90,English: 100,chainses: 30]
? sore:
? ? math: 90
? ? english: 100
? ? chainese: 90
?# ?set集合 ?2種寫法
# ?salary: [22.0,333.90]
? salary:
? ? - 22.90
? ? - 33.80
?#對(duì)象類型 --鍵值對(duì)
? pet:
? ? name: 小哈
? ? weight: 9
# ?map復(fù)雜集合 --2種寫法
? allPets:
? ? sick:
? ? ? - {name: 紅紅,weight: 99}
? ? ? - name: niuniu
? ? ? ? weight: 88
? ? health: [{name: 胖胖,weight: 79},{name: 小白,weight: 90}]測(cè)試 -啟動(dòng)類打印輸出
package cn.maggie.bussiness;
import cn.maggie.bussiness.entity.User;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class BussinessApplication {
? ? public static void main(String[] args) {
? ? ? ? ConfigurableApplicationContext run = SpringApplication.run(BussinessApplication.class, args);
? ? ? ? User user = run.getBean(User.class);
? ? ? ? System.out.println("============================>"+user.toString());
? ? }
}配置文件注入值數(shù)據(jù)校驗(yàn)
@Validated//JSR303數(shù)據(jù)校驗(yàn),此注解加于配置類上
屬性可用到的注解

多環(huán)境profile
server:
port: 8080
spring:
profiles:
active: dev #激活,默認(rèn)就是8080
---
server:
port: 8083
spring:
profiles: test
---
server:
port: 8081
spring:
profiles: prod #指定屬于哪個(gè)配置引入此依賴,自定義bean與配置文件綁定時(shí),配置文件會(huì)有提醒
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!--打包時(shí)排除此包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<!-- 打包時(shí),排除此包-->
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java 使用線程監(jiān)控文件目錄變化的實(shí)現(xiàn)方法
這篇文章主要介紹了java 使用線程監(jiān)控文件目錄變化的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-10-10
最新IntelliJ IDEA 2021版配置 Tomcat 8.5 的詳細(xì)步驟
idea開發(fā)工具一直是java環(huán)境最好用,很受廣大開發(fā)者喜愛,今天通過(guò)本文給大家分享最新IntelliJ IDEA 2021版配置 Tomcat 8.5 的詳細(xì)步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-06-06
Spring Cloud Config與Bus整合實(shí)現(xiàn)微服務(wù)配置自動(dòng)刷新功能
通過(guò)整合SpringCloud Config與Spring Cloud Bus,實(shí)現(xiàn)了微服務(wù)配置的自動(dòng)刷新功能,這個(gè)機(jī)制允許一個(gè)微服務(wù)實(shí)例在配置更新時(shí)通過(guò)消息總線通知其他所有實(shí)例同步更新,從而保持配置的一致性并提升系統(tǒng)的運(yùn)維效率2024-10-10
Java String字符串和Unicode字符相互轉(zhuǎn)換代碼詳解
這篇文章主要介紹了Java String字符串和Unicode字符相互轉(zhuǎn)換代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
利用Sharding-Jdbc組件實(shí)現(xiàn)分表
這篇文章主要為大家詳細(xì)介紹了利用Sharding-Jdbc組件實(shí)現(xiàn)分表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
ruoyi-springboot框架新增模塊調(diào)接口報(bào)404的解決方案
這篇文章主要介紹了ruoyi-springboot框架新增模塊調(diào)接口報(bào)404的解決方案,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-03-03
Java 的 FileFilter文件過(guò)濾與readline讀行操作實(shí)例代碼
這篇文章介紹了Java 的 FileFilter文件過(guò)濾與readline讀行操作實(shí)例代碼,有需要的朋友可以參考一下2013-09-09

