Spring Boot 설정 파일 속성 주입

2988 단어 springboot
프로필:
Spring Boot 에서 설정 파일 은 두 가지 다른 형식 이 있 습 니 다. 하 나 는 properties 이 고 다른 하 나 는 Yml 입 니 다.
Yml 더욱 깔끔 하고, 데이터 순서;properties 의 데 이 터 는 무질서 합 니 다.
단, Yml 설정 은 현재 @ PropertySource 주 해 를 지원 하지 않 습 니 다.
application. properties 에 있어 서 굳이 application 이 라 고 부 를 필 요 는 없 지만 프로젝트 의 기본 값 은 application 이라는 프로필 을 불 러 오 는 것 입 니 다. 만약 에 저희 프로필 이 application 이 라 고 부 르 지 않 아 도 되 지만 프로필 의 파일 이름 을 명 확 히 지정 해 야 합 니 다.
일반 속성 주입
Spring Boot 는 Spring 에서 유래 하기 때문에 Spring 에 존재 하 는 속성 주입 은 Spring Boot 에 도 존재 합 니 다.Spring Boot 에 서 는 기본적으로 application. properties 파일 을 자동 으로 불 러 오기 때문에 간단 한 속성 주입 은 이 프로필 에 직접 쓸 수 있 습 니 다.
public class Book {
    private Long id;
    private String name;
    private String author;
    //   getter/setter
}

그리고 application. properties 파일 에서 속성 을 정의 합 니 다. 
book.name=    
book.author=   
book.id=1

전통 적 인 방식 (Spring 의 방식) 에 따라 @ Value 주 해 를 통 해 이 속성 을 Book 대상 에 직접 주입 할 수 있 습 니 다.
@Component
public class Book {
    @Value("${book.id}")
    private Long id;
    @Value("${book.name}")
    private String name;
    @Value("${book.author}")
    private String author;
    //  getter/setter
}

주의 하 다.
북 대상 자체 도 스프링 용기 에 맡 겨 관리 해 야 하 며, 북 이 스프링 용기 에 맡 기지 않 았 다 면 북 의 속성 도 스프링 용기 에서 값 을 가 져 올 수 없다.
설정 이 완료 되면 Controller 나 유닛 테스트 에 북 대상 을 주입 하고 프로젝트 를 시작 하면 속성 이 대상 에 주입 되 었 음 을 볼 수 있 습 니 다.
일반적으로, 우 리 는 application. properties 파일 에 시스템 설정 을 저장 합 니 다. 이러한 사용자 정의 설정 은 이 파일 에 두 는 것 을 권장 하지 않 습 니 다. 사용자 정의 프로필 을 사용자 정의 할 수 있 습 니 다.
예 를 들 어 resources 디 렉 터 리 에서 book. properties 파일 을 사용자 정의 합 니 다. 내용 은 다음 과 같 습 니 다.
book.name=    
book.author=   
book.id=1

자바 설정 이 라면 @ PropertySource 를 통 해 설정 을 도입 할 수 있 습 니 다.
@Component
@PropertySource("classpath:book.properties")
public class Book {
    @Value("${book.id}")
    private Long id;
    @Value("${book.name}")
    private String name;
    @Value("${book.author}")
    private String author;
    //getter/setter
}

프로젝트 가 시 작 될 때 book. properties 파일 을 자동 으로 불 러 옵 니 다.
이것 은 Spring 에서 속성 을 주입 하 는 간단 한 용법 일 뿐 Spring Boot 와 아무런 관계 가 없다.
형식 보안 속성 주입
Spring Boot 는 유형의 안전 한 속성 주입 을 도 입 했 습 니 다. Spring 의 설정 방식 을 사용 하면 설정 의 속성 이 매우 많 을 때 작업량 이 많 고 오류 가 발생 하기 쉽 습 니 다.
유형 안전 한 속성 주입 을 사용 하면 이 문 제 를 효과적으로 해결 할 수 있 습 니 다.
@Component
@PropertySource("classpath:book.properties")
@ConfigurationProperties(prefix = "book")
public class Book {
    private Long id;
    private String name;
    private String author;
    //  getter/setter
}

여기 서 @ PropertySource 를 사용 하여 사용자 정의 프로필 이름 을 지정 하고 @ ConfigurationProperties (prefix = "book") 주 해 를 도입 하 며 속성의 접 두 사 를 설정 합 니 다. 프로필 에 있 는 접 두 사 는 대상 속성 이름과 일치 합 니 다. 이 때 Spring 용기 에 있 는 데 이 터 를 대상 에 대응 하 는 속성 에 자동 으로 주입 합 니 다. @ Value 주 해 를 통 해 하나씩 주입 하지 않 아 도 됩 니 다.작업량 을 줄 이 고 실 수 를 피하 다.

좋은 웹페이지 즐겨찾기