我有一个看起来像这样的配置文件:
reports.email.emailSubject.REPORT1=Report1 subject
reports.email.emailToRecipients.REPORT1=recipient1@email.com
reports.email.emailSubject.REPORT2=Report2 subject
reports.email.emailToRecipients.REPORT2=recipient2@email.com
我正在使用Spring,并希望能够一次性获取所有emailSubject并将它们加载到集合或数组中。所以我想象一个带有通配符(即*)的bean在SpEL表达式中是这样的:
@Bean(name = "emailSubjects")
public static List<String> getEmailSubjects(@Value("${reports.email.emailSubject.*}") String[] emailSubjects) {
return new ArrayList(emailSubjects);
}
但是,SpEL不支持我的通配符。但它确实支持“收藏选择”和“收集预测”(见here),但这些似乎都不是我想要的。
我还需要知道匹配的属性键是什么 - 所以我可能正在寻找返回Map而不是字符串集合的东西。
所以问题是,我该怎么做。我是否需要编写某种类型的自定义属性处理程序?
我正在使用Spring 3.2.0