如何在枚举中使用application.properties中的字段?

时间:2019-05-20 12:36:06

标签: java amazon-s3 enums properties application.properties

我想使用在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.

0 个答案:

没有答案