【发布时间】:2015-11-24 18:42:18
【问题描述】:
我有以下枚举:
public class Wrapper(){
public enum MyEnum{
A("a_id", "a_source", "a_target"),
B("b_id", "b_source", "b_target"),
...
Z("z_id", "z_source", "z_target"),
String id;
String source;
String target;
myEnum(String i, String s, String t){
id = i;
source = s;
target = t;
}
}
}
如果可能,我希望能够在application.properties 中指定枚举参数(例如"a_id"),以便我可以修改它们并根据需要注入它们。我最初的想法是:
public class Wrapper(){
@Value("${a.id}")
private String A_ID;
@Value("${a.source}")
private String A_SOURCE;
@Value("${a.target}")
private String A_TARGET;
public enum MyEnum{
A(A_ID, A_SOURCE, A_TARGET),
...
}
}
application.properties 看起来像:
a.id=a_id
a.source=a_source
a.target=a_target
问题是我不能在枚举中调用A_ID 而不将其设为static,但如果我将其设为static,我将无法执行依赖注入(据我所知)。
让这些字符串在外部可配置和注入的最佳方法是什么?
【问题讨论】:
标签: java dependency-injection enums spring-boot