1. 프로필
1.1 간략한
두 응용 프로그램 및 구성 파일의 이름은 고정되어 글로벌 구성 파일을 사용합니다 기본적으로 스프링 부팅, 구성 파일은 파일의 두 가지 형식으로 할 수있다, 하나는 하나 .yaml 형식의 파일입니다 .properties 파일입니다. 속성 중 하나 application.yaml;
프로필 역할 : 봄 부팅 기본 값을 수정 구성, 예를 들어, 포트 번호 등;
1.2YAML 문법 소개
1.2.1 소개
YAML은 (YAML은 Lanuage를 마크 업되지 않음), 인기있는 이름은 두 가지 의미가 있습니다 :
YAML 마크 업 Lanuage : YAML은 마크 업 언어입니다;
YAML은 마크 업 Lanuage되지 않습니다 : 야마는 마크 업 언어가 아닙니다;
YAML 데이터 중심의 구성 파일에 더 적합 json.xml 이상;
예를 들어, 우리는 봄 부팅의 시작의 포트 정보를 변경하려면, 우리는 다음과 application.properties 파일 구문은 다음과 같습니다 :
server.port = 8,971
그러나 다음과 같은 application.yaml 파일 구문은 다음과 같습니다
서버 :
포트 : 8089
우리는 XML 설정 파일에서 같은 작업이있는 경우 다음과 같이 물론, 구문은 다음과 같습니다
< 서버 > < 포트 > 8089 </ 포트 > </ 서버 >
1.2.2 콘크리트 구문
[1] K :( 공간) V는 :; 제어 계층을 들여 공백으로, 키 - 값 쌍들의 쌍 (a 공간이 있어야) 지정 만큼 하나 인 왼쪽 정렬 데이터를 동일한 수준이다;
서버 :
포트 : 8089
오류 :
경로 : / 안녕하세요
첫 번째 레벨은 서버 포트이며, 동일한 에러 레벨에 속하는 것을 특징으로하는 단일 레벨에 속하는 경로;
또한 YAML 파일 속성 및 대소 문자 값 것을 주목해야한다;
[2] 기록 값
다음과 같이 즉, YAML 파일에 기록 될 수있는 값 전부입니다, 우리의 공통의 가치 유형은 다음과 같습니다
첫 번째 범주 : 문자, 일반 값 (숫자, 문자열, 부울)
케이 : V : 직접 문자는 특별한 의미가있는 경우 같은 출력 "AB \의 NC"같은 특별한 의미 출력, 특수 문자의 문자열에서, 따옴표, 큰 따옴표를 추가하지 않고, 특히 문자열 유형, 쓰기, 출력 :
순이
C
단일 인용 부호를 추가 한 다음 특수 문자는 예를 들어로 출력 될 것입니다 : 'AB \ NC'의 출력은 다음과 같습니다
AB \ NC
두번째 카테고리 : 오브젝트 맵 (속성 및 값) (기능 키);
K : V : 다음 라인 객체 관계를 작성하는 속성 및 값은주의 들여 쓰기, 예를 들어, 우리는 이제 다음과 같이 기록 속성 이름과 나이를 가진 클래스 사용자를 가지고 :
사용자 :
이름 : HAIGE
연령 : 20
문구 다음 라인도 상당이 문구 위 :
사용자 {이름 : HAIGE, 연령 : 20}
세번째 범주 : 수집 배열 (목록, 설정);
배열 요소의 값, 예를 아래 애완 설정을 위해, 원래 화소의 세트를 나타내고있다 -와 : 돼지, 개, 고양이를 다음과 같이 표현 된 :
애완 동물 :
-pig
-dog
- 고양이
쓰기는 더 라인이 다음의 문구에 해당 말했다 :
애완 동물 : 돼지, 고양이, 개]
1.3 구성 파일 YAML에서 속성 값을 주입
우리는 YAML 파일에서 속성을 읽을 것을 배울 필요가 YAML 구성 파일 매우 편리하기 때문이다. 여기서, 예시적인 프리젠 테이션;
다음과 같이 구체적인 단계는 다음과 같습니다
[1 단계] : Person 클래스 선언, 속성 이름, 나이,지도 세트, 목록을 수집, 개체와 다른 속성이있다;
패키지 com.hai.bao.springboot01; 수입 java.util.Date; 수입은 java.util.List; 수입 java.util.Map; / * * * @author : haibao.wang의 *의 @date : 2019년 8월 29일 22시 20분에서 만든 * @description : 사람은类 : *으로 @modified * @version : $ * / 공용 클래스 사람 { 개인 문자열 이름; 개인 INT의 시대; 개인 부울 상사; 개인 날짜 출생; 개인 지도 <문자열, 개체> 지도; 개인 목록 <개체> 목록; 개인 개 개; 공공 문자열 getName () { 반환 이름; } 공공 무효 에서는 setName (문자열 이름) { 이 .name을 = 이름; } 공공 INT getAge () { 반환 시대; } 공공 무효 setAge ( INT의 연령) { 이 .age = 나이; } 공공 부울 isBoss () { 반환 보스; } 공공 공극 setBoss (부울 보스) { 이 .boss = 보스; } 공공 날짜 getBirth는 () { 반환 출생; } 공공 무효 setBirth (일 출생) { 이 .birth = 출생; } 공공 지도 <문자열, 개체> getMaps는 () { 반환 지도; } 공공 무효 setMaps는 (지도 <문자열, 개체> 지도) { 이 =의 .maps 지도; } 공공 목록 <개체> getLists는 () { 반환 목록; } 공공 무효 setLists (목록 <개체> 목록) { 이.lists = 목록; } 공공 개 getDog () { 반환 개; } 공공 공극 setDog (개 개) { 이 .dog = 개; } @Override 공공 문자열 toString () { 반환 " 사람 { " + " 이름 = ' " + 이름 + ' \ ' ' + " , 연령 = " + 나이 + " , 보스 = " + 보스 + " ," + 출산 + " ,지도 = " +지도 + " , 목록 = " + 목록 + " , 개 = " + 개 + ' } ' ; } }
다음과 같이 클래스가 Person 클래스는 개, 개 클래스 속성 :
패키지 com.hai.bao.springboot01; / * * * @author : haibao.wang의 *의 @date : 2019년 8월 29일 22시 23분에서 만든 * @description :新建一个小狗类 *으로 @modified : * @version : $ * / 공용 클래스 개 { 개인 문자열 dogName; 개인 INT의 dogAge; 공공 문자열 getDogName는 () { 반환 dogName을; } 공공 공극 setDogName (문자열 dogName) { 이 .dogName = dogName; } 공공 INT getDogAge는 () { 반환 dogAge을; } 공공 공극 setDogAge ( int로 dogAge)을 { 이 .dogAge = dogAge; } }
[2] Person 클래스 파일의 구성 속성 값 연관된 application.yaml;
서버 :
포트 : 8089
담당자 :
이름 : HAIGE
나이 : 18이
true로 : BOSS
출생 : 1990년 5월 27일
지도 :
key01 : 화학
key02 : 물리
목록 :
- 실행
- 수영
개 :
dogName : 카이
dogAge : 3
[3] Person 클래스에 메시지가이 때 :
이때, 상기 프로세서는 의존적으로, 프로파일 pom.xml 파일에 추가 될 필요가있다;
<의존성>
<의 groupId> org.springframework.boot </의 groupId>
<artifactId를> 스프링 부팅 구성 프로세서 </ artifactId를>
<선택> 진정한 </ 선택>
</ 의존성>
[4] 인 클래스 @ConfigurationProperties (접두사 = "사람") 음표를 추가한다. 하나이 클래스 바인드 한 모든 속성 및 구성 파일을 봄 부팅 구성 정보를 알려;
[5] Person 클래스 용기 내의 성분, 그것은 @ConfigurationProperties 주석을 사용할 수 있도록, 주석 용기를 추가하는 단계;
[6] 시작 봄 부팅 서비스;
[7] 기능을 확인하기 위해 테스트 클래스의 봄 부팅 장치를 쓰기 :
패키지 com.hai.bao; 수입 com.hai.bao.springboot01.Person; 수입 org.junit.Test; 수입 org.junit.runner.RunWith; 수입 org.springframework.beans.factory.annotation.Autowired; 수입 org.springframework.boot.test.context.SpringBootTest; 수입 org.springframework.test.context.junit4.SpringRunner; @RunWith (. SpringRunner 클래스 ) @SpringBootTest 공공 클래스 BaoApplicationTests { @Autowired 사람 사람; @Test 공공 무효 contextLoads () { 시스템. 밖으로 .println (사람); } }
다음과 같이 코드의 결과는 다음과 같습니다
1.4 .properties 파일은 Person 클래스의 속성을 구성하는 파일;
#는 Person 클래스 관련 속성 값 구성 인 person.age = 10 person.birth = 1990 년 / 05 / 01 person.boss =을 true로 person.maps.key01 =의 수학 person.maps.key02 = 화학 person.lists = 요가, 수영 사람 .dog.dogName = 카이 person.dog.dogAge = 2
다음과 같이 실행 유닛 테스트를 개시 한 후, 시험 결과는 :
다음 왜곡, 상기 방법 IDEA 네이티브 코드 형식 UTF-8을 해결하기 때문에 왜곡 문제가있다 :
파일 - 설정 - 파일 인코딩