我有一个问题,关于设置@Value注释的注入顺序。我尝试过@Order,但在这种情况下,它不起作用。我为什么要问这个?因为某些值依赖于其他值。我可以在@PostConstructor中制作更多的逻辑,但如果存在任何控制订单的解决方案,它将对我有所帮助。
为了澄清,一个不起作用的例子:
@Value("${first}")
@Order(1)
public void setFirst(boolean first) {
FIRST = first;
}
@Value("${second}")
@Order(2)
public void setSecond(String second) {
SECOND = second;
if(first){
//do something
}
}
如果某些内容有效,则可以使用Environment类来获取值。例如:
@Autowired
private Environment env;
@Value("${first}")
public void setFirst(boolean first) {
FIRST = first;
if (FIRST)
SECOND = env.getProperty("second");
}
似乎有两个全局变量,如
private boolean FIRST;
private String SECOND;
然后你可以实现如下:
@Value("${first}")
public void setFirst(boolean first) {
FIRST = first;
}
@Value("${second}")
public void setSecond(String second) {
SECOND = second;
if(FIRST){
//do something
}
}