스프링 부트에서 애플리케이션 속성 런타임을 새로 고치거나 다시 로드하는 방법은 무엇입니까?
6097 단어 springtutorialjavaspringboot
스프링 부트에는 많은 옵션이 있습니다. 이제 여기에서 가장 쉬운 옵션을 설명하겠습니다.
Refresh beans with @ConfigurationProperties
Reloading 속성을 위해 spring cloud는 빈을 새로 고치는 데 사용할 수 있는 @RefreshScope 주석을 도입했습니다.
Spring Actuator는 상태, 메트릭에 대한 다양한 엔드포인트를 제공합니다. 그러나 스프링 클라우드는 모든 속성을 다시 로드하기 위해 추가 끝점/새로 고침을 추가합니다.
필수 maven/gradle 종속성
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
그런 다음 응용 프로그램 속성 파일에 아래 속성을 추가하십시오.
management.endpoints.web.exposure.include=refresh
// Db Properties, Values to be store in a Map
db.dbProps.awsEndPoint=localhost:8080/aws/
db.dbProps.azureEndPoint=localhost:8080/azure/
이제 속성을 구성하기 위한 클래스를 만들고 클래스에 @RefreshScope 주석을 추가합니다.
@Component
@ConfigurationProperties(prefix = "db")
@RefreshScope
public class DbProperties {
// This is for storing application properties in a Map
public Map<String, String> dbProps;
public Map<String, String> getDbProps() {
return dbProps;
}
public void setDbProps(Map<String, String> dbProps) {
this.dbProps = dbProps;
}
// Get property value using key
public String getDbPropData(String key) {
return dbProps.get(key);
}
}
위의 코드는 애플리케이션 속성 데이터를 새로 고칠 수 있는 범위를 만듭니다.
이제 응용 프로그램 속성에서 데이터를 변경할 때. 아래 URL을 사용하여 POST REST 호출을 제공해야 합니다.
http://localhost:8080/actuator/refresh
지금부터 다음 접근에서 새로운 가치를 얻을 수 있습니다.
제 블로그를 읽어주셔서 감사합니다. 🤩
Reference
이 문제에 관하여(스프링 부트에서 애플리케이션 속성 런타임을 새로 고치거나 다시 로드하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vishalpaalakurthi/how-to-refresh-reload-application-properties-runtime-in-spring-boot-8ln텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)