> Java > java지도 시간 > springboot에서 @configurationProperties를 정적으로 로드하는 방법

springboot에서 @configurationProperties를 정적으로 로드하는 방법

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2023-05-20 23:55:04
앞으로
1832명이 탐색했습니다.

일반적인 개발에서는 기본적으로 변하지 않는 상수를 속성이나 yml 파일 등의 구성 항목에 넣어서 시작 시에만 로드할 수 있도록 합니다. 어떻게 하나요?

우리는 springboot의 @ConfigurationProperties 주석과 정적 정적 해당 속성을 사용합니다.

그러나 작업이 제대로 이루어지지 않으면 로드된 데이터가 비어 있게 됩니다. 그 이유는 아래 사례를 참조하세요.

1. 오류 사례

//错误1:get\set都是静态方法
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public static Integer getPreview() {
        return preview;
    }

    public static void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}
로그인 후 복사
//错误2:跟第一种差不多,只是用了lombok注解代替了get\set方法,get\set也都是静态方法
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;
}
로그인 후 복사

2. 성공 사례

@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public static Integer getPreview() {
        return preview;
    }

    public void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}
로그인 후 복사
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}
로그인 후 복사

3. 이유

Spring에서는 주입 시 set 메소드를 호출해야 하므로 동적으로 주입할 수 없습니다. @Data를 사용하는 경우에는 get 메서드에 정적 메서드로 static을 추가하기만 하면 됩니다.

위 내용은 springboot에서 @configurationProperties를 정적으로 로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿