官术网_书友最值得收藏!

The @Fallback policy

The @Fallback annotation can only be applied on a method; annotating a class will give an unexpected result:

@Retry(maxRetries = 2)
@Fallback(StringFallbackHandler.class)
public String shouldFallback() {
...
}

The fallback method is called after the number of retries is reached. In the previous example, the method will be retried twice in case of an error, and then the fallback will be used to invoke another piece of code—in this case, the following StringFallbackHandler class:

import javax.enterprise.context.ApplicationScoped;

import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.faulttolerance.ExecutionContext;
import org.eclipse.microprofile.faulttolerance.FallbackHandler;

@ApplicationScoped
public class StringFallbackHandler implements FallbackHandler<String> {
@ConfigProperty(name="app1.requestFallbackReply", defaultValue = "Unconfigured Default Reply")
private String replyString;

@Override
public String handle(ExecutionContext ec) {
return replyString;
}
}

Fallback code can be defined by a class implementing the FallbackHandler interface (see the previous code) or by a method in the current bean. In the StringFallbackHandler code, a MicroProfile Config property named app1.requestFallbackReply is used to externalize the application's fallback string value.

主站蜘蛛池模板: 巴彦县| 阳泉市| 孝昌县| 花莲县| 香港 | 株洲县| 营口市| 任丘市| 兴安盟| 民丰县| 内黄县| 佳木斯市| 陵川县| 锦屏县| 翁牛特旗| 黎平县| 凉山| 黄石市| 于田县| 栾城县| 桦南县| 九寨沟县| 无锡市| 漳平市| 金阳县| 昭通市| 镇雄县| 玛沁县| 辽宁省| 贵溪市| 吉安县| 阿拉善盟| 龙井市| 万盛区| 瑞丽市| 平江县| 怀安县| 安平县| 彭水| 澄江县| 桦川县|