봄 부팅 연구 2 : 봄 부팅 구성 관련 콘텐츠

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을 해결하기 때문에 왜곡 문제가있다 :

파일 - 설정 - 파일 인코딩

 

 

추천

출처www.cnblogs.com/haibaowang/p/11426980.html