springboot 핵심 기술 의 설정 파일 상세 설명 (1)
7173 단어 springboot
1. 1. Yml 가 무엇 입 니까?
YAML 은 XML, JSON 과 유사 한 표기 성 언어 다.YAML 은 데이터 중심 이지 표지 언어 에 중점 을 두 는 것 이 아니 라 고 강조 했다.따라서 YAML 자체 의 정 의 는 비교적 간단 하여 '인성 화 된 데이터 형식 언어' 라 고 불 린 다.XML 과 같은 장점 이 있 지만 XML 보다 훨씬 간단 하고 민첩 하 다.
1.2 작성 규범
1.2.1 기본 데이터 형식 (글자 양): int, string, boolean 등
people:
name:
age: 24
isTeacher: true
1. 들 여 쓰기 로 등급 관 계 를 나타 내 고 같은 등급 의 요소 가 왼쪽 에 정렬 되 며 들 여 쓰기 에는 스페이스 바 만 사용 할 수 있 고 Tab 키 를 사용 할 수 없습니다.
2. 속성 명 과 속성 값 사 이 를 '빈 칸' 으로 구분 해 야 합 니 다. 그렇지 않 으 면 유효 하지 않 습 니 다.
3. 속성 이름과 속성 수치 가 모두 대소 문자 에 민감 합 니 다.
4. 속성 값 할당:
"": 작은 따옴표;문자열 에 있 는 특수 문 자 를 바 꾸 지 않 습 니 다. 특수 문 자 는 자신 이 표현 하고 자 하 는 의미 로 출력 합 니 다.
장삼 lisi" ;출력: 장삼 줄 바 꾼 후 lisi;
‘’:작은 따옴표;전의 문자열 에 있 는 특수 문 자 를 사용 합 니 다. 작은 따옴표 를 사용 하면 상기 데 이 터 는 다음 과 같 습 니 다: 장 삼 lisi
1.2.2 지도 대상
1. 방식 1:
maps: {k1: obj1,
k2: obj2}
2. 방식 2:
maps:
k1: obj1
k2: obj2
1.2.3 배열 (List, Set)
1. 방식 1:
list:
- lisi
- zhangsan
- mark
2. 방식 2:
list: [lisi,zhangsan,mark]
1.2.4 사용자 정의 인 스 턴 스 대상 Dog (name, age)
1. 방식 1:
dog:
name:
age: 2
2. 방식 2:
dog: { name: ,
age: 2}
메모: 대상 의 설정 방식 은 맵 과 같 습 니 다.
1.3, springboot 기본 설정 파일
springboot 기본 값 은 application. properties 나 application. yaml 파일 을 springboot 의 기본 시작 파일 로 사용 합 니 다.
1. properties 파일 사용자 정의 실체 속성 형식
userinfo.account=itdragonBlog
userinfo.age=25
userinfo.active=true
userinfo.created-date=2018/03/31 16:54:30
userinfo.map.k1=v1
userinfo.map.k2=v2
userinfo.list=one,two,three
userinfo.position.name=Java
userinfo.position.salary=19999.99
2. Yml 형식 파일 사용자 정의 실체 속성 설정
people:
name:
age: 24
isTeacher: true
maps:
k1: obj1
k2: obj2
list:
- lisi
- zhangsan
- mark
dog:
name:
age: 2
last-name: zhangsan
2. springboot 에서 프로필 을 읽 는 두 가지 방식
2.1, @ ConfigurationProperties 주석 읽 기 프로필
1. 실체 류 구축
People 실체 클래스
@Component
@ConfigurationProperties(prefix = "people")
public class People {
private String name;
private int age;
private boolean isTeacher;
private Map maps;
private List list;
private Dog dog;
private String lastName;
개 실체 클래스
public class Dog {
private String name;
private int age;
2 、 people 실체 클래스 앞 에 @ ConfigurationProperties 탭 추가
@configurationProperties: springboot 에 게 이 클래스 의 모든 속성 과 프로필 의 설정 을 연결 하 라 고 알려 줍 니 다. prefix 의 값 은 설정 파일 의 하위 속성 과 실체 속성 을 일대일 로 표시 하 는 것 입 니 다.
3. controller 류
@RestController
public class PeopleController {
@Autowired
People people;
@RequestMapping("/people")
public People getPeople(){
return people;
}
4. 프로필 프로세서 추가: 알림 기능 설정
org.springframework.boot
spring-boot-configuration-processor
true
5. 테스트 결과
{"name":" ","age":24,"maps":{"k1":"obj1","k2":"obj2"},"list":["lisi","zhangsan","mark"],"dog":{"name":" ","age":2},"lastName":"zhangsan","teacher":true}
2.2 @ value 탭 사용
1. person 실체
public class People {
//@value("${}") :string,int,Boolean
@Value("${people.name}")
private String name;
// @Value("#{24}")
@Value("${people.age}")
private int age;
// @Value("#{true}")
@Value("${people.isTeacher}")
private boolean isTeacher;
private Map maps;
private List list;
private Dog dog;
// @Value("#{'zhangsan'}")
@Value("${people.last-name}")
private String lastName;
2. 테스트 결과
{"name":" ","age":24,"maps":null,"list":null,"dog":null,"lastName":"zhangsan","teacher":true}
3. @ value (${}) 는 글자 액면가 만 가 져 올 수 있 습 니 다. bean, map, List 는 @ value (\ # {}) 를 사용 할 수 있 습 니 다. SpEL 표현 식 구현, 구체 적 으로 참고 가능
https://blog.csdn.net/ya_1249463314/article/details/68484422
2.3, @ ConfigurationProperties 와 @ value 의 대비
@ConfigurationProperties
@value
기능.
설정 파일 의 속성 대량 주입
하나하나 지정 하 다
느슨 한 귀속 (느슨 한 문법)
지지 하 다.
지지 하지 않 음
SpEL 표현 식
지지 하지 않 음
지지 하 다.
JSR 303 데이터 검증
지지 하 다.
지지 하지 않 음
복잡 한 형식 패키지 (예: Map)
지지 하 다.
지지 하지 않 음
비 즈 니스 필드:
1. 저 희 는 실체 중의 특정한 속성 값 만 가 져 오 려 면 @ value 를 사용 하 는 것 을 추천 합 니 다.
2. javaBean 과 프로필 의 일대일 맵 을 실현 해 야 합 니 다. @ ConfigurationProperties 를 추천 합 니 다.
2.4, @ ConfigurationProperties JSR 303 데이터 검증 사용
1. people 실체 류
@Component
@ConfigurationProperties(prefix = "people")
@Validated
public class People {
@Email
private String name;
private int age;
private boolean isTeacher;
private Map maps;
private List list;
private Dog dog;
private String lastName;
2. 테스트 오류
Binding to target org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'people' to com.example.demo.entity.People failed:
Property: people.name
Value:
Origin: class path resource [application.yaml]:2:11
Reason:
JSR 303 데이터 검증 바 인 딩 성공 을 증명 합 니 다.
2.5, 느슨 한 귀속 @ value 테스트
1. Yml 파일 설정
last-name: zhangsan
2. people 실체 클래스 에서 인용
@Value("${lastName}")
private String lastName;
3. 테스트 결과 오류
Could not resolve placeholder 'lastName' in value "${lastName}"
@ value 태그 가 느슨 한 바 인 딩 을 지원 하지 않 음 을 증명 하 였 으 나, @ ConfigurationProperties 는 이러한 느슨 한 바 인 딩 을 지원 합 니 다.
4. 주의: application. properties 와 application. yaml 가 동시에 존재 할 때 application. properties 의 우선 순 위 는 application. yaml 보다 크 고 상호 보완 설정 을 형성 해 야 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.