问题描述
我的 application.yml 是
app:
ranking:
UNK: "[UNK]"
"ARTICLE_FEATURE_GRPC_API": "0.0.0.0:50055"
"ARTICLE_STABLE_MODEL_NAME": "article_push_stable"
"PREDICT_BATCH_SIZE": 256
我的配置类是:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "app.ranking")
public class RankingConfig {
public static String UNK;
public static String ARTICLE_FEATURE_GRPC_API;
public static String ARTICLE_STABLE_MODEL_NAME;
public static String PREDICT_BATCH_SIZE;
}
但我无法得到值,例如,RankingConfig.ARTICLE_FEATURE_GRPC_API
。
我该怎么办?
解决方法
你必须为你的属性添加 getter 和 setter。喜欢;
public void setPREDICT_BATCH_SIZE(String PREDICT_BATCH_SIZE) {
this.PREDICT_BATCH_SIZE = PREDICT_BATCH_SIZE;
}
public String getPREDICT_BATCH_SIZE() {
return PREDICT_BATCH_SIZE;
}
,
试试
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "app.ranking")
public class RankingConfig {
public static String UNK;
public static String ARTICLE_FEATURE_GRPC_API;
public static String ARTICLE_STABLE_MODEL_NAME;
public static String PREDICT_BATCH_SIZE;
//and you must have getters and setters!
}
对于 YAML 文件,我认为您不需要引号 ("")
app:
ranking:
UNK: "[UNK]"
ARTICLE_FEATURE_GRPC_API: "0.0.0.0:50055"
ARTICLE_STABLE_MODEL_NAME" "article_push_stable"
PREDICT_BATCH_SIZE: 256