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 주 해 를 통 해 하나씩 주입 하지 않 아 도 됩 니 다.작업량 을 줄 이 고 실 수 를 피하 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.