Назначьте значение свойства в аннотации уровня класса Java - PullRequest
0 голосов
/ 10 июля 2019

В моем 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 голосов
/ 13 июля 2019

Попробуйте создать bean-компонент:

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

Используя предложение @ Óscar López: contexts = "${myAppContext}" Этот синтаксис должен работать, особенно если значением свойства является строка.

Попробуйте сначала без скобок.Если вам нужен массив, вы можете рассмотреть возможность использования значения через запятую в вашем application.properties, или даже что-то вроде contexts = "#{Arrays.asList(\"${theProperty}\")}", со значением через запятую, если вам нужен другой тип Collection.

...