Springbootの2つのプロファイル構文の詳細
15572 ワード
SpringBootはグローバルなプロファイルを使用しています.プロファイル名は固定されています.次の2つのファイルがあります. application.properties application.yml application.propertiesプロファイル
テストコードは次のとおりです.
yaml構文の紹介k:(スペース)v:一対のキー値ペア(スペースが必要)を表す; スペースのインデントで階層関係を制御する.左揃えのデータ列であれば、同じレベルです. 属性と値も大文字と小文字が敏感である. k:v:字面直接書く; 文字列のデフォルトでは、一重引用符または二重引用符は付けられません. ":二重引用符;文字列の中の特殊な文字はエスケープされません.特殊文字は自分が表したい意味としてname:“zhangsanlisi”:出力;zhangsan改行lisi ':一重引用符;特殊文字がエスケープされ、特殊文字は最終的には普通の文字列データ にすぎません.—:ブロックを表し、1つのymalファイルを複数のファイルに分割 yaml基本用法
# ( , , )
user.user-name=
#
user.user-name=45678
user.pwd=123456
user.mobile=18393948482
user.age=25
#
user.hobby= , ,
# Map
user.map.k1=123456
user.map..k2=456789
文字列は二重引用符や一重引用符を使用する必要はありません.書き込みがあれば文字列の一部としてそのまま出力されます.テストコードは次のとおりです.
// ,
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Map;
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class User {
private String userName;
private String mobile;
private String pwd;
private int age;
private String[] hobby;
private Map<String,String> map;
}
//
import com.example.demo.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Autowired
User user;
@Test
public void contextLoads() {
System.out.println(user);
String[] hobbys = user.getHobby();
for (String str:hobbys
) {
System.out.println(str);
}
}
}
//
2019-07-03 16:56:39.609 INFO 5596 --- [ main] com.example.demo.DemoApplicationTests : Started DemoApplicationTests in 3.887 seconds (JVM running for 4.7)
User(userName=' /n', mobile=18393948482, pwd=123456, age=25, hobby=[ , , ], map={k1=123456, k2=456789})
2019-07-03 16:56:39.851 INFO 5596 --- [ Thread-3] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
application.ymlプロファイルyaml構文の紹介
# ( , , )
server:
port: 8081
user:
user-name:
age: 26
mobile: 18369615874
#
# hobby: [ , , ]
# map
# map: {k1: ,k2: }
pwd: 123456
hobby:
-
-
-
map:
k1:
k2:
---
#
user: {user-name: ,pwd: 123456,mobile: 1839394721,hobby: [ , , ],map: {k1: ,k2: },age: 26}
検証結果:2019-07-03 17:21:32.074 INFO 32672 --- [ main] com.example.demo.DemoApplicationTests : Started DemoApplicationTests in 3.201 seconds (JVM running for 3.923)
User(userName= , mobile=18369615874, pwd=123456, age=26, hobby=[ , , ], map={k1= , k2= })