在Java类级注释中分配属性值

时间:2019-07-10 15:46:58

标签: java spring properties annotations properties-file

在我的application.properties中,我有一个属性,如下所示:

myAppContext=something.special

Spring应用程序从该文件读取属性。

我想这样在类级注释中访问上述属性:

// "contexts" take in an array of string values
@AClassLevelAnnotation(contexts = {"something.special"})
public class Amazing{}

我不想使用值(属性文件中已经存在),而是使用属性键访问它,类似这样,它不起作用:

@AClassLevelAnnotation(contexts = {@Value("${myAppContext}")})
public class Amazing{}

关于它如何工作的任何建议?

1 个答案:

答案 0 :(得分:0)

尝试制作豆子:

    @Bean
    public static PropertySourcesPlaceholderConfigurer getPropertyConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }

使用@ÓscarLópez的建议:contexts = "${myAppContext}"应该可以使用这种语法,尤其是在属性值是字符串的情况下。

首先尝试不使用括号的方法。如果需要数组,则可能需要考虑在application.properties中使用逗号分隔的值,或者甚至使用contexts = "#{Arrays.asList(\"${theProperty}\")}"之类的东西,如果需要其他Collection类型,请使用逗号分隔的值。