Java 从属性文件加载静态变量值

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

我有一个类,用于存储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}/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的非静态版本