Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧开关属性值_Java_Spring_Dependency Injection_Spring El - Fatal编程技术网

Java 弹簧开关属性值

Java 弹簧开关属性值,java,spring,dependency-injection,spring-el,Java,Spring,Dependency Injection,Spring El,假设我有一个属性文件,其中有以下属性 name=哈利、安迪、罗伯特 email.harry=harry@xyz.com email.andy=andy@xyz.com email.robert=robert@xyz.com 要求是通过过滤name属性来显示电子邮件地址 因此,在上述情况下,应显示所有电子邮件地址 假设将来我从name属性中删除“robert”,那么只显示harry和andy的电子邮件地址 使用spring依赖项注入是否有同样的方法 注意:我想让name属性可配置。我不想每次都添加

假设我有一个属性文件,其中有以下属性

name=哈利、安迪、罗伯特

email.harry=harry@xyz.com

email.andy=andy@xyz.com

email.robert=robert@xyz.com

要求是通过过滤name属性来显示电子邮件地址

因此,在上述情况下,应显示所有电子邮件地址

假设将来我从name属性中删除“robert”,那么只显示harry和andy的电子邮件地址

使用spring依赖项注入是否有同样的方法


注意:我想让name属性可配置。我不想每次都添加新的bean属性。

使用组件上的@ConfigurationProperties(“电子邮件”)注释绑定到名称和电子邮件列表。您必须重新调整您的属性:

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<>();
@组件
@ConfigurationProperties(“电子邮件”)//前缀电子邮件,查找电子邮件。*值
公共类AppProperties{
私有字符串名称;
私有列表地址=新的ArrayList();
Spring应该为您绑定所有这些内容。请看一下本教程,它或多或少地说了相同的内容:


虽然只有Spring启动,但如果您还没有启动,那么使用它也是一个很好的理由。

显示在何处?。这些属性在何处读取?这是可能的。创建一个类并注释
@Value(${my.property.name}”)
。在视图中,根据该显示检查是否为null。@Value(${my.property.name})将获取name属性的值。但是我如何获取该名称对应的电子邮件?@Sandy你最好拆分字符串,假设名称只有一个,比如说..harry。检查包含名称harry的电子邮件列表。如果有,则不发送。收到了吗?谢谢。但要求有点d不同的…比如说…属性email.names只包含harry。那么电子邮件应该只发送给harry,而不是andy和robert。比如说,在以后的某个时候,我考虑添加harry,andy。然后电子邮件应该发送给harry和andy,而不是robert。有没有办法在运行时绑定名称和电子邮件?