Как разобрать файл свойств, который использует нотацию массива в Spring 3 - PullRequest
0 голосов
/ 05 июня 2018

Я хочу превратить этот файл свойств:

myproj.myprops.authorizedRoles[0]=ROLE_1
myproj.myprops.authorizedRoles[1]=ROLE_2
myproj.myprops.authorizedRoles[2]=ROLE_3

В бин Spring 3, который я мог бы использовать так:

@Autowired
@Qualifier("authorizedRoles")
private List<String> authorizedRoles

Только я не уверен, как этого добиться... Есть ли аннотация, процессор компонентов или что-то, что могло бы помочь мне выполнить эту задачу?

То, что я НЕ ищу, - это решение Spring Boot.Я уже знаю, что @ConfigurationProperties мог бы легко решить эту проблему в проекте Spring Boot, но я работаю с устаревшим общим проектом, который должен поддерживать ОБА приложения Spring Boot и Spring 3.

Я также НЕ ищет стандартное решение объединения свойств в одно свойство, подобное следующему ...

Я НЕ хочу, чтобы мой файл свойств выглядел так:

myproj.myprops.authorizedRoles=ROLE_1,ROLE_2,ROLE_3

И я НЕ хочу обработать мои свойства следующим образом:

@Value("#{'${myproj.myprops.authorizedRoles}'.split(',')}") 
private List<String> authorizedRoles;

Опять же, это для унаследованного проекта Spring 3, которыйнеобходимо поддерживать ОБА Spring 3 и приложения Spring Boot , поэтому я хотел бы придерживаться стандартной записи массива, которую будут использовать проекты Spring Boot, хотя я не могу использовать @ConfigurationProperties.

1 Ответ

0 голосов
/ 05 июня 2018

Используйте

@Value("${myproj.myprops.authorizedRoles}")
private List<String> authorizedRoles

Для доступа к свойствам массива

...