반응형
Spring Boot to Spring Retry 주석에서 구성 속성을 주입하는 방법은 무엇입니까?
스프링 부트 애플리케이션에서 아래와 같이 yaml 파일에 일부 구성 속성을 정의합니다.
my.app.maxAttempts = 10
my.app.backOffDelay = 500L
그리고 예시 콩.
@ConfigurationProperties(prefix = "my.app")
public class ConfigProperties {
private int maxAttempts;
private long backOffDelay;
public int getMaxAttempts() {
return maxAttempts;
}
public void setMaxAttempts(int maxAttempts) {
this.maxAttempts = maxAttempts;
}
public void setBackOffDelay(long backOffDelay) {
this.backOffDelay = backOffDelay;
}
public long getBackOffDelay() {
return backOffDelay;
}
의 값을 주입하려면 어떻게 해야 합니까?my.app.maxAttempts
그리고.my.app.backOffdelay
SpringRetry 주석으로?아래 예제에서 값을 바꾸려고 합니다.10
maxAttempts 및500L
backoff 값과 구성 속성의 해당 참조.
@Retryable(maxAttempts=10, include=TimeoutException.class, backoff=@Backoff(value = 500L))
spring-retry-1.2.0부터 @Retryable 주석에서 구성 가능한 속성을 사용할 수 있습니다.
"maxAttemptsExpression"을 사용합니다. 사용법은 아래 코드를 참조하십시오.
@Retryable(maxAttemptsExpression = "#{${my.app.maxAttempts}}",
backoff = @Backoff(delayExpression = "#{${my.app. backOffDelay}}"))
1.2.0보다 작은 버전을 사용하는 경우에는 작동하지 않습니다.또한 구성 가능한 속성 클래스도 필요하지 않습니다.
표현식 속성에 기존 콩을 사용할 수도 있습니다.
@Retryable(include = RuntimeException.class,
maxAttemptsExpression = "#{@retryProperties.getMaxAttempts()}",
backoff = @Backoff(delayExpression = "#{@retryProperties.getBackOffInitialInterval()}",
maxDelayExpression = "#{@retryProperties.getBackOffMaxInterval" + "()}",
multiplierExpression = "#{@retryProperties.getBackOffIntervalMultiplier()}"))
String perform();
@Recover
String recover(RuntimeException exception);
어디에
재시도 속성
사용자의 경우와 같이 재시도 관련 속성을 보유한 사용자의 빈입니다.
아래와 같이 스프링 EL을 사용하여 속성을 로드할 수 있습니다.
@Retryable(maxAttempts="${my.app.maxAttempts}",
include=TimeoutException.class,
backoff=@Backoff(value ="${my.app.backOffDelay}"))
언급URL : https://stackoverflow.com/questions/43143806/how-to-inject-config-properties-in-spring-boot-to-spring-retry-annotation
반응형
'it-source' 카테고리의 다른 글
합이 상수 K - Excel인 N개의 난수 생성 (0) | 2023.07.10 |
---|---|
3.2의 MongoDB 덤프, 3.4로 복원, 오류 인덱스 safe = null (0) | 2023.07.10 |
Android에서 텍스트 편집 보기에서 다중 행을 허용하시겠습니까? (0) | 2023.07.05 |
NodeJS Types 스크립트에서 @types 버전을 관련 패키지 버전과 연결하는 방법은 무엇입니까? (0) | 2023.07.05 |
Spring Boot Swagger UI - UI 액세스 보호 (0) | 2023.07.05 |