Java 从属性文件加载静态变量值
我有一个类,用于存储API的不同端点。该类如下所示:Java 从属性文件加载静态变量值,java,spring,properties,Java,Spring,Properties,我有一个类,用于存储API的不同端点。该类如下所示: public class APIEndpoints { public static String LOG_IN = "/api/auth/login"; public static String LOG_OUT= "/api/auth/logout"; public static String GET_INSTANCE ="/api/{objectID}/insta
public class APIEndpoints {
public static String LOG_IN = "/api/auth/login";
public static String LOG_OUT= "/api/auth/logout";
public static String GET_INSTANCE ="/api/{objectID}/instances?offset={offset}&limit{limit}";
public static String getInstance(String reportID, int offSet, int limit){
return GET_INSTANCE.replace("{reportID}",reportID)
.replace("{offset}", String.valueOf(offSet))
.replace("{limit}", String.valueOf(limit));
}
}
我希望端点URL(“例如api/auth/login”)是从文件加载的,就像endpoints.properties一样
我使用的是SpringBoot,但它不允许在静态变量上注入值
解决这个问题的“最”优雅的解决方案是什么?你会怎么做
谢谢。您可以使用下面的
@Value
注释来访问它
@Value("${your.property.name}")
private String property;
在endpoints.properties
文件中,您必须像这样定义它
your.property.name=propertyValue
您可以使用下面的
@Value
注释来访问它
@Value("${your.property.name}")
private String property;
在endpoints.properties
文件中,您必须像这样定义它
your.property.name=propertyValue
问题已经得到了回答: 不建议使用静态@Value字段,但以下是您可以使用的方法:
@Value("${url}")
public void setUrl(String url) {
APIEndpoints.url = url;
}
问题已经得到了回答: 不建议使用静态@Value字段,但以下是您可以使用的方法:
@Value("${url}")
public void setUrl(String url) {
APIEndpoints.url = url;
}
您是否对使APIEndpoints成为spring单例bean并完全消除静态调用的解决方案感兴趣?这个bean可以被注入到其他bean中,您可以调用非静态版本的getInstanceAre您对使APIEndpoints成为spring单例bean并完全消除静态调用的解决方案感兴趣吗?这个bean可以注入到其他bean中,您可以调用getInstance的非静态版本