[SPRING] 외부 속성 파일이 변경되면 스프링 값으로 부팅 할 때 속성 값을 다시로드합니다.
SPRING외부 속성 파일이 변경되면 스프링 값으로 부팅 할 때 속성 값을 다시로드합니다.
나는 스프링 부트를 사용하고 있으며, 두 개의 외부 속성 파일을 가지고있어서 그 값을 쉽게 바꿀 수있다.
하지만 스프링 애플 리케이션이 파일에서 읽는 것처럼 업데이트 될 때 변경된 값을 다시로드하기를 바랍니다. 속성 파일은 필자의 필요를 충족시키기에 충분히 쉽기 때문에 필자는 db 또는 파일이 필요 없다고 희망한다.
속성 값을로드하는 두 가지 다른 방법을 사용합니다. 코드 샘플은 다음과 같습니다.
@RestController
public class Prop1Controller{
@Value("${prop1}")
private String prop1;
@RequestMapping(value="/prop1",method = RequestMethod.GET)
public String getProp() {
return prop1;
}
}
@RestController
public class Prop2Controller{
@Autowired
private Environment env;
@RequestMapping(value="/prop2/{sysId}",method = RequestMethod.GET)
public String prop2(@PathVariable String sysId) {
return env.getProperty("prop2."+sysId);
}
}
내 응용 프로그램으로 부팅 할 것입니다.
-Dspring.config.location=conf/my.properties
해결법
-
==============================
1.Spring 컨텍스트를 다시 시작해야 할까 봐 걱정됩니다.
Spring 컨텍스트를 다시 시작해야 할까 봐 걱정됩니다.
-
==============================
2.귀하의 필요를 성취 할 수있는 유일한 방법은 봄 구름을 가능하게하는 것입니다. 컨텍스트와 빈을 새로 고치는 새로 고침 끝점 / 새로 고침이 있습니다.
귀하의 필요를 성취 할 수있는 유일한 방법은 봄 구름을 가능하게하는 것입니다. 컨텍스트와 빈을 새로 고치는 새로 고침 끝점 / 새로 고침이 있습니다.
Spring-cloud-config-server (마이크로 서비스이고 빌드하기가 아주 쉽다)가 필요한지 잘 모르겠다. 설정이 저장되어있는 곳 (Git 또는 svn). 또는 응용 프로그램의 application.properties 파일에서만 사용할 수도 있습니다.
여기서 새로 고침 범위와 봄 구름에 대한 문서를 찾을 수 있습니다.
-
==============================
3.Spring Cloud를 사용할 수 있어야합니다.
Spring Cloud를 사용할 수 있어야합니다.
종속성으로 추가
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: '1.1.2.RELEASE'
그런 다음 @RefreshScope 주석을 사용하십시오.
스프링 액추에이터가있는 경우에도 적합합니다.
봄 구름 문서
-
==============================
4.(1) 스프링 클라우드의 RestartEndPoint
(1) 스프링 클라우드의 RestartEndPoint
RestartEndPoint를 사용할 수 있습니다 : 프로그래밍 방식으로 스프링 부트 응용 프로그램 다시 시작 / 스프링 컨텍스트 새로 고침
RestartEndPoint는 스프링 클라우드 컨텍스트와 함께 번들로 제공되는 액츄에이터 EndPoint입니다.
그러나 RestartEndPoint는 파일 변경 사항을 모니터링하지 않으므로 직접 처리해야합니다.
(2) devtools
이것이 프로덕션 응용 프로그램을위한 것인지 아닌지는 알 수 없습니다. devtools를 조금씩 해킹하여 원하는 것을 할 수 있습니다.
다른 질문을 위해 쓴이 다른 대답을 살펴보십시오. Jar를 실행할 때 스프링 부팅 DevTools 강제 실행
파일 변경에 대한 Devtools 모니터 :
기술적으로, devtools는 IDE 내에서만 작동하도록 만들어졌습니다. 해킹으로 항아리에서 시작할 때도 작동합니다. 그러나 실제 제작 응용 프로그램에서는 그렇게하지 않을 수도 있습니다.
from https://stackoverflow.com/questions/39387272/reload-property-value-when-external-property-file-changes-spring-boot by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @Autowired는 구성 요소 검색이 제거 된 경우 작동하지 않습니다. (0) | 2019.04.18 |
---|---|
[SPRING] Apache Tomcat에서 apache cxf를 사용하여 프로젝트를 배포 할 수 없습니다. (0) | 2019.04.18 |
[SPRING] 스프링 부트 (Spring Boot)와 MongoDB에 대한 연결 세부 사항 구성 방법 (0) | 2019.04.18 |
[SPRING] Spring Boot Embedded tomcat에서 외부 정적 HTML 파일을 서비스하는 방법은? (0) | 2019.04.18 |
[SPRING] Spring에서 트랜잭션 일시 중지는 어떻게 작동합니까? (0) | 2019.04.18 |