SpringBoot 프로젝트 의 사용자 정의 설정 에 IDE 지원 을 추가 하 는 방법 에 대한 자세 한 설명

머리말
코드 는 사람 에 게 보 여 주 는 것 이지 기계 에 보 여 주 는 것 이 아니 라 컴퓨터 가 실행 할 수 있 는 것 일 뿐이다.
우리 프로젝트 에 서 는 사용자 정의 설정 을 추가 해 야 하 는 응용 장면 이 자주 나타 납 니 다.예 를 들 어 특정한 스위치 변 수 는 테스트 환경 에서 열 리 고 생산 환경 에서 열 리 지 않 습 니 다.보통 아래 코드 를 사용 하여 이 루어 집 니 다.그리고 Spring Boot 설정 파일 에 이 key 와 Value 를 추가 합 니 다.
Application.java:

application.properties

아니면@Value 를 사용 하지 않 고 XML 에서 우리 가 설정 한 속성 값 을 사용 합 니 다.
application.xml

이러한 코드 와 설정 은 Spring Boot 프로젝트 에서 정상적으로 시작 되 고 설정 을 읽 을 수 있 지만 IDE 에 서 는 설정 의 유형 과 코드 보완 을 알려 주지 않 습 니 다.새로운 동료 가 오 거나 설정 파일 에 새로운 환경 지원 을 추가 해 야 할 때 설정 파일 의 키 를 잘못 맞 추 거나 Value 의 값 이 변수 형식 과 호 환 되 지 않 습 니 다(실제로 이러한 문제 가 발생 하여 프로젝트 시작 에 실 패 했 습 니 다).
그러나 우리 가 Spring Boot 에서 제공 하 는 설정 을 사용 할 때 IDE 는 항상 우리 에 게 이 설정 의 변수 유형 을 알려 주 고 심지어 이 설정 에 대한 설명 을 보 여 줍 니 다.
저희 가 쓴 설정 에 도 이러한 IDE 지원 을 추가 할 수 있 습 니까?

항목 데이터 설정(Configuration Metadata)
Spring Boot 의 Jar 파일 은 메타 데이터 파일 을 포함 하고 있 으 며,이 파일 들 은 우리 가 필요 로 하 는 설정 속성 에 대한 상세 한 정 보 를 제공 합 니 다.IDE 는 이 메타 데이터 파일 을 읽 은 다음 application.properties 나 application.yml 을 사용 할 때 문맥 정보 와 코드 보완 을 제공 합 니 다.그러면 설정 항목 데이터 정보 파일 을 작성 하고 저장 하 는 방법 만 알 면 IDE 에서 사용자 정의 설정 에 컨 텍스트 정 보 를 제공 하 는 방법 을 알 수 있 습 니 다.
메타 데이터 형식
Spring Boot 프로젝트 의 설정 항목 데이터 파일 은 모두 META-INF/spring-configuration-metadata.json 에 있 습 니 다.다음 그림 은 Spring Boot 프로젝트 를 설정 한 후 기본 으로 사용 하 는 Spring Boot 자동 설정 항목 데이터 저장 위치 입 니 다.

그룹,properties,hints 에 따라 항목 데이터 파일 을 설정 합 니 다.properties 의 모든 property 는 프로그램 에서 사용 해 야 할 설정 항목 의 key 값 입 니 다.예 를 들 어 server.port 는 서비스 가 시 작 된 포트 번호 입 니 다.그리고 우 리 는 일부 property 를 특정한 규칙 에 따라 조합 할 수 있 습 니 다.이 조합 은 group 입 니 다.(보통 우 리 는 properties 조직 에 대응 하 는 group 이 필요 하지 않 습 니 다.)한편,hints 는 우리 의 설정 항목 에 추가 정 보 를 제공 합 니 다.예 를 들 어 시간 대 time.zone 은 아시아/상하 이 를 지원 합 니 다.우 리 는 이 를 위해'아시아/상하 이'의 hint 를 제공 할 수 있 습 니 다.
properties 의 매개 변수
명칭.
유형
묘사 하 다.
name
String
속성의 전체 이름.이름 은 소문 자로 문장 으로 나 뉜 다.이 속성 은 필수 입 니 다
type
String
속성의 데이터 형식의 전체 서명(java.lang.string)은 범례 라면 완전한 범례 인자(java.util.List)를 포함해 야 합 니 다.일치 성 을 확보 하기 위해 서 는 기본 유형 대신 포장 유형 을 사용 해 야 한다.이 속성 은 필수 가 아니 지만 유형 진단 지원 을 받 을 수 없습니다.
hints 의 인자
명칭.
유형
묘사 하 다.
name
String
이 알림 이 인용 한 속성의 전 칭 은 properties 의 name 인자 와 같 습 니 다.이 속성 은 필수 입 니 다
values
ValueHint[]
ValueHint 대상 이 정의 하 는 유효한 값 목록 입 니 다.모든 항목 이 이 값 을 정의 하고 설명 할 수 있 습 니 다.
ValueHint 의 인자
명칭.
유형
묘사 하 다.
value
Object
property 가 지정 한 형식의 유효 값 입 니 다.property 의 유형 이 배열 이 라면 값 의 배열 일 수도 있 습 니 다.이 속성 은 필수 입 니 다.맵 형식의 속성 이 라면.keys 와.values 를 사용 하여 유효한 값 을 지정 할 수 있 습 니 다.
description
String
properties 의 description 과 마찬가지 로 사용자 에 게 간단 한 설명 을 알려 줍 니 다.이 속성 은 필수 가 아 닙 니 다.
여기 에는 우리 가 자주 사용 하 는 인자 만 보 여 줍 니 다.항 원 데이터 파일 형식 설정 에 대한 상세 한 정 보 는 Spring Boot 의 공식 문서(https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-format)를 볼 수 있 습 니 다.
사용자 정의 설정 을 위 한 설정 항목 데이터 작성
다음은 값,배열 필드 에 대응 하 는 설정 항목 데 이 터 를 작성 하고 이 설정 항목 에 힌트 를 추가 합 니 다(Talk is cheap,show me the code)


IDE 에서 실제로 사용 하 는 효과



그러나 이런 방식 은 좋 지만 IDE 에 코드 보완 과 상하 문 정 보 를 추가 하 는 방법 을 알려 주 는 JSON 설정 을 많이 써 야 합 니 다.설정 과 코드 는 분 리 된 상태 입 니 다.설정 클래스 를 쓰 면 이 클래스 와 그 주석 을 통 해 IDE 지원 을 할 수 있 으 면 좋 겠 습 니 다.-Spring Boot 개발 자 도 그렇게 생각 합 니 다.
코드 자동 생 성 설정 항목 데이터
우선@Value 를 어디서나 사용 하 는 습관 을 고치 고 전문 적 인 데이터 클래스 를 사용 하여 설정 항목 을 저장 해 야 합 니 다.

다음 에 우 리 는 Spring Boot 용기 로 이러한 인 스 턴 스 를 연결 할 수 있 도록 Bean 을 만 듭 니 다.

@ConfigurationProperties 주 해 를 통 해 Spring 은 자동 으로 설정 을 Bean 에 주입 합 니 다.그러나 이 때 IDE 는 우리 가 추가 한 자동 설정 을 식별 할 수 없습니다.Spring Boot 의 주해 프로세서(annotation processor,자바 1.6 부터 지원 하 는 기능)를 추가 해 야 합 니 다.

주석 처리 장 치 를 추가 한 후 다시 컴 파일 하면 target 디 렉 터 리 에서 자동 으로 생 성 되 는 META-INF/spring-configuration-metadata.json 을 볼 수 있 습 니 다.

안의 내용 은 기본적으로 우리 가 이전에 수 동 으로 입력 한 내용 으로 자바 코드 가 정 보 를 표현 하 는 한계 가 있 을 뿐 hints 정 보 를 생 성 할 방법 이 없다.그 중에서 sourceType 과 sourceMethod 속성 은 IDE 가 이 설정 의 클래스 와 방법 을 설명 하 는 데 도움 을 줄 수 있 습 니 다.

코드 로 생 성 된 설정 클래스 에 도 알림 을 추가 하려 면 META-INF 디 렉 터 리 에 addition al-spring-configuration-metadata.json 파일 을 추가 하여 hints 를 이 파일 에 기록 할 수 있 습 니 다.

이렇게 하면 Spring Boot 는 컴 파일 할 때 우리 의 알림 정 보 를 설정 정보 메타 데이터 파일 에 통합 합 니 다.

이러한 작업 은 코드 의 운행 효율 을 증가 시 키 지 는 않 지만,우리 의 설정 을 집중 시 키 고 IDE 의 보너스 가 있어 서,우리 가 설정 을 변경 할 때 더욱 자신 감 을 가지 게 할 것 이다.처음에 말 했 듯 이 코드 는 사람 에 게 보 여 주 는 것 이지 기계 에 보 여 주 는 것 이 아니 라 컴퓨터 가 실행 할 수 있 는 것 일 뿐이다.
SpringBoot 프로젝트 의 사용자 정의 설정 에 IDE 지원 을 추가 하 는 방법 에 대한 자세 한 설명 은 여기까지 입 니 다.SpringBoot 에 IDE 지원 내용 을 추가 하 는 방법 에 대해 서 는 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기