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

kcrjzv8t  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(410)

我有一个类,用于存储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,但它不允许在静态变量上注入值。
解决这个问题的“最”优雅的解决方案是什么?你会怎么做?
谢谢您。

ngynwnxp

ngynwnxp1#

您可以使用 @Value 注解如下

@Value("${your.property.name}")
private String property;

在你的 endpoints.properties 你必须像这样定义它

your.property.name=propertyValue
bz4sfanl

bz4sfanl2#

问题已经回答了:链接
不建议使用静态@value字段,但以下是您可以使用的方法:

@Value("${url}")
public void setUrl(String url) {
    APIEndpoints.url = url;
}

相关问题