SpringBootでのyaml構成の概要

1つ、yaml

Springブートは、修正されたグローバル構成ファイルを使用します。/ resourcesまたは/ configディレクトリ配置されたapplication.xmlまたはapplication.yamlにすることができます。

  • yaml:マークアップ言語であり、データ中心であり、xmlやjsonよりも構成ファイルに適しています
  • XML構成の例:
  <server>
       <port> 8081</port>
   </server>
  • yml構成例:
     server:
        port: 8085
        path: /hello

 

2.yaml書き込み

参照構文: https //bitbucket.org/asomov/snakeyaml/wiki/Documentation#markdown-header-yamlsyntax
リテラル変数:単一の分割できない値(数値、文字列、ブール値、日付)

 

オブジェクト、マップ(キー:値キーと値のペア):

 

person:
     name: tom
     age: 18
personMap:
     username: herry
     age: 20

 

person:{name: tom,age: 18}

 

配列:リスト、セット

 

ainamals:
 - dog
 - cat
 - snack

 

animals:[dog,cat,snack]

 

3、yamlテスト

1.構成ファイルプロセッサをインポートします。構成を書き込むときにプロンプ​​トが表示されます

		<!-- 导入文件处理器,配置文件进行绑定的时候,就会有提示-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>

 

2.javaBean

public class Dog {
 private String name;
 private Integer age;
 }
  /**
* 将配置文件中的每一个值,映射到这个组件中
*@ConfigurationProperties: 此注解表示告诉sprigboot将本类中的
*       所有属性和配置文件中相关配置进行一一绑定
*prefix = "person" :配置文件中的哪个进行绑定
*@Component: 只有是容器中的组件才会作用
*
*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
 private String name;
 private Integer age;
 private Boolean boss;
 private Date birthday;

 private Map<String,Object> map;
 private List<Object> list;
 private Dog dog;
}

 

3.構成ファイルの挿入

application.yml

person:
    name: tom
    age: 17
    boss: true
    birthday: 2018/01/12
    map:
      k1: v1
      k2: v2
    list:
      - cat
      - fish
      - dog
    dog:
      name: goodboy
      age: 3

 

application.properties

#配置properties属性
# idea properties默认是utf-8
person.name=tim
person.age=16
person.boss=false
person.birthday=2014/11/23
person.map.k1=v1
person.map.k2=22
person.list=cat,dog,fish
person.dog.name=goodboy
person.dog.age=3

 

4.クラスをテストして開始し、コンソールが印刷するかどうかを確認します

/**
 * Spring boot 单元测试
 *
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootHelloworldQuickApplicationTests {

	@Autowired
	Person person;
	@Test
	public void contextLoads() {
		System.out.println(person);
	}
}

 

アイデアのプロパティ構成ファイルのデフォルトのutf-8が文字化けしている可能性があります

  • 文法参照および検証アドレス:http //www.yaml.org/ https://nodeca.github.io/js-yaml/
  • 2、yaml構文仕様

    1.yamlの基本的な文法

  • インデントを使用して階層関係を示します
  • インデント時にタブキーを使用することはできません。スペースのみを使用できます。階層を制御するためのスペース
  • k :(スペース)v:キーと値のペアのペアを表します(スペースが存在する必要があります);
  • 同じレベルの要素が左に配置されている限り、インデントされたスペースの数は重要ではありません。
  • 大文字と小文字を区別
  • k:v:文字通り直接書く
  • 文字列:
    一重引用符または二重引用符を黙って追加しない
    "":二重引用符は文字列内の特殊文字をエスケープしません。特殊文字は独自の意味を表します。たとえば、「Li」Li Si \ n 20歳」出力:Li Siは20歳をラップします
    '':一重引用符。特殊文字はエスケープされ、特殊文字は最終的には通常の文字列データになります。「Li」Li Si \ n 20年」出力:Li Si \ n20歳
    • ファイル:複数のファイルは---で区切られます
  • オブジェクトはキーです:コロンで区切られた値
  • キー値を区切るには、コロンの後にスペースを使用します
  •  
  • インライン書き込み:
  •  
  • -配列内の要素を表します
  • 配列とオブジェクトおよび併用
  •  
  • インライン書き込み
  •  
  •  
  •  
  •  
  •  
  •  

おすすめ

転載: blog.csdn.net/xulong5000/article/details/107409535