pr0*_*ist 5 java configuration microprofile quarkus
我正在重写旧系统的异常,一切正常,但我需要进行BAD_REQUEST配置。
private static final String BAD_REQUEST = "BDRQ";
Run Code Online (Sandbox Code Playgroud)
我尝试只放置 ConfigProperty,但它不起作用。
import javax.ws.rs.core.Response.Status;
import org.eclipse.microprofile.config.inject.ConfigProperty;
public class SXClientException extends RuntimeException {
@ConfigProperty(name = "greeting.error", defaultValue = "BDRQ")
public String BAD_REQUEST;
private final RuntimeException runtimeException;
public SXClientException(RuntimeException e) {
super(e);
this.runtimeException = e;
}
public Status getStatus() {
if (BAD_REQUEST.equals(runtimeException.getMessage())) {
return Status.BAD_REQUEST;
}
return Status.INTERNAL_SERVER_ERROR;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
它可能不起作用,因为我在没有任何 CDI 的情况下制作它们。
catch (LegacyOMException e) {
throw new SXClientException(e);
}
Run Code Online (Sandbox Code Playgroud)
我宁愿避免创建另一个 bean(并传递值)只是为了比较一个字符串。知道如何读取静态值的配置值吗?
小智 7
您可以使用 org.eclipse.microprofile.config.ConfigProvider。适用于静态和非静态成员。
public static final String BAD_REQUEST = ConfigProvider.getConfig().getValue("greeting.error",String.class);
public final String BAD_REQUEST = ConfigProvider.getConfig().getValue("greeting.error",String.class);
Run Code Online (Sandbox Code Playgroud)
小智 0
使用以下方法:
Properties properties = new Properties();
InputStream inputStream = this.getClass().getResourceAsStream("/menu.properties");
properties.load(inputStream );
System.out.println(properties.getProperty("a"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4886 次 |
| 最近记录: |