我想使用在application.properties spring.profiles.active=dev
中编写的字段,以便它为我提供值“ dev”,并且可以使用它。
我尝试将其放在@Value()批注中,但这始终为null。 我尝试将字段声明为静态,但是不能在枚举中使用一个。 如果使用if语句也不公平。
public enum BucketName {
OSRM_TABLE("sg-roe/" + BucketName.getProfile() + "/vrps/osrm-backend-tables"),
PROBLEM("sg-roe/" + BucketName.getProfile() + "/vrps/problems"),
SOLUTION("sg-roe/" + BucketName.getProfile() + "/vrps/raw_solutions"),
IMAGE("sg-roe/" + BucketName.getProfile() + "/vrps/solutions/images"),
SUMMARY("sg-roe/" + BucketName.getProfile() + "/vrps/solutions/summaries");
private String bucketname;
@Value("${spring.profiles.active}")
private static String profile;
BucketName(String bucketname) {
this.bucketname = bucketname;
}
public static String getProfile() {
return profile;
}
public String getBucketname() {
return bucketname;
}
}```
The main issue, as mentioned above, is the null value that it returns.