假设我有一个属性文件,其中包含以下属性
name = harry,andy,robert
email.harry = harry@xyz.com
email.andy = andy@xyz.com
email.robert = robert@xyz.com
要求是通过过滤name属性来显示电子邮件地址。
因此,在上述情况下,应显示所有电子邮件地址。
假设将来如果我从name属性中删除“robert”,那么只显示harry和andy的电子邮件地址。
有没有办法使用spring依赖注入来做同样的事情?
P.S。:我想使name属性可配置。我不想每次都添加一个新的bean属性。
答案 0 :(得分:0)
使用组件上的@ConfigurationProperties(" email")注释绑定到名称和电子邮件列表。您必须稍微重新调整您的属性:
Properties:
email.names = harry,andy,robert
email.addresses.harry = harry@xyz.com
email.addresses.andy = andy@xyz.com
email.addresses.robert = robert@xyz.com
你的班级:
@Component
@ConfigurationProperties("email") // prefix email, find email.* values
public class AppProperties {
private String names;
private List<String> addresses = new ArrayList<>();
和Spring应该为你绑定一切。看看这个或多或少相同的教程:https://www.mkyong.com/spring-boot/spring-boot-configurationproperties-example/
仅限Spring Boot,但如果你不是,那么另一个很好的理由就是使用它。已经