Spring Boot 구조 기 파라미터 바 인 딩, 점점 강해 집 니 다!
@ConfigurationProperties
주석 표지 (더 많은 Spring Boot 의 튜 토리 얼 은 공중 번호 인 '자바 기술 창고' 가 배경 에서 답장: boot) 를 사용 하 는 것 을 주목 하 십시오.며칠 전, Spring Boot 2.2.0 이 정식으로 발표 되 었 습 니 다: Spring Boot 2.2.0 이 정식으로 발표 되 었 습 니 다. JDK 13 을 지지 합 니 다!글 에서 구조 기 를 바탕 으로 하 는 매개 변수 바 인 딩 이 언급 되 었 으 니 오늘 스 택 장 은 여러분 을 데 리 고 실천 해 보 겠 습 니 다. 도대체 어떻게 사용 하고 무슨 소 용이 있 습 니까?
쓸데없는 말 은 하지 말고 먼저 예시 코드 를 올 려 라.
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConstructorBinding;
import org.springframework.boot.context.properties.bind.DefaultValue;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* :Java
*/
@ConstructorBinding
@ConfigurationProperties(prefix = "tom")
public class TomProperties {
private String name;
private String sex;
private int age;
private String country;
private Date entryTime;
public TomProperties(String name,
String sex,
int age,
@DefaultValue("China") String country,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date entryTime) {
this.name = name;
this.sex = sex;
this.age = age;
this.country = country;
this.entryTime = entryTime;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public int getAge() {
return age;
}
public String getCountry() {
return country;
}
public Date getEntryTime() {
return entryTime;
}
@Override
public String toString() {
return "TomProperties{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
", country='" + country + '\'' +
", entryTime=" + entryTime +
'}';
}
}
프로필 내용:
tom:
name: Tom
sex: man
age: 18
entry-time: 2012-12-12 12:00:00
매개 변수 결과 출력:
TomProperties{name='Tom', sex='man', age=18, country='China', entryTime=Wed Dec 12 12:00:00 CST 2012}
구조 기의 매개 변수 바 인 딩 을 통 해 사실은
@ConfigurationProperties
주 해 를 바탕 으로 '@ Constructor Binding' 주 해 를 추가 하 는 것 입 니 다.@ Constructor Binding 몇 가지 요약:
1.
@ConstructorBinding
이라는 주 해 를 사용 하면 표지 와 같은 매개 변 수 는 매개 변 수 를 가 진 구조 기 를 통 해 주입 되 고 매개 변 수 를 가 진 구조 기 가 없 으 면 setters 를 통 해 주입 된다.setters 를 통 해 주입 되 는 지 구조 기 를 통 해 주입 되 는 지 어떻게 판단 합 니까? 이러한 소스 코드 를 보십시오.
org.springframework.boot.context.properties.ConfigurationPropertiesBean.BindMethod
2.
@ConstructorBinding
클래스 에 사용 할 때 이 클래스 는 매개 변 수 를 가 진 구조 기 만 있 을 수 있다.만약 에 여러 개의 구조 기 가 있 을 때 @ConstructorBinding
를 구체 적 인 구조 방법 에 직접 연결 할 수 있다.3. 구성원 변 수 는
final
가 변 하지 않 을 수 있 습 니 다.4. 이러한 내부 구조 기 주입 형식 을 지원 합 니 다.
5. 기본 값
@DefaultValue
, @DateTimeFormat
시간 형식 등 주석 배합 사용 을 지원 합 니 다.6. 협조
@ConfigurationProperties
, @EnableConfigurationProperties
주해 사용 이 필요 하 다.7. 이미지
@Component
, @Bean
, @Import
등 방식 으로 bean 의 구조 기 파라미터 바 인 딩 을 만 드 는 것 을 지원 하지 않 습 니 다.원본 코드 보기:
@Target({ElementType.TYPE, ElementType.CONSTRUCTOR})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ConstructorBinding {
}
어떤 매개 변수 도 없 는데 이것 은 구조 기 매개 변수 가 연 결 된 표지 역할 을 한 다 는 것 을 설명 할 수 있다.
포즈 올 렸 죠?또 하나의 바 인 딩 매개 변수 에 대한 새로운 방법 을 배 웠 습 니 다!
모든 Spring Boot 예제 코드 를 가 져 옵 니 다. 위 챗 공식 번호 인 '자바 기술 스 택' 이 배경 에서 키 워드 를 답장 하 는 것 을 주목 하 십시오: bootcode.
끝나 지 않 았 습 니 다. 스 택 장 은 Spring Boot 최신 기술 튜 토리 얼 을 계속 공유 할 것 입 니 다. 지금 은 재 고 를 한 무더기 썼 습 니 다. 위 챗 공식 번호 인 '자바 기술 스 택' 에 관심 을 가지 고 대중 번 호 를 제일 먼저 푸 시 할 것 입 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.