当前位置: 首页 > 知识库问答 >
问题:

在Spring中将属性文件中的所有键和值作为映射注入

许明朗
2023-03-14

有人能提供一些想法来注入属性文件中的所有动态键和值,并将其作为Map传递到使用集合的Setter注入的DBConstance类。

钥匙事先不知道,可能会有所不同。

// Example Property File that stores all db related details
// db.properties

db.username.admin=root
db.password.admin=password12
db.username.user=admin
db.password.user=password13

DBConstance包含需要为其注入所有键和值的map dbConstance。

请提供bean定义以将所有键和值注入到MapdbConstance。

public class DBConstants {

    private Map<String,String> dbConstants;

    public Map<String, String> getDbConstants() {
        return dbConstants;
    }

    public void setDbConstants(Map<String, String> dbConstants) {
        this.dbConstants = dbConstants;
    }
}

共有2个答案

单耘豪
2023-03-14

您可以使用@Value

属性文件:

dbConstants={key1:'value1',key2:'value2'}

Java代码

@Value("#{${dbConstants}}")
private Map<String,String> dbConstants;
松波
2023-03-14

您可以使用您的属性文件创建属性工厂Bean,然后将其注入到您想要将其用作地图的@Resources注释中。

@Bean(name = "myProperties")
public static PropertiesFactoryBean mapper() {
    PropertiesFactoryBean bean = new PropertiesFactoryBean();
    bean.setLocation(new ClassPathResource("prop_file_name.properties"));
    return bean;
}

使用方法:

@Resource(name = "myProperties")
private Map<String, String> myProperties;
 类似资料:
  • 我试图向自定义注释中注入一个值,但Spring似乎没有进行评估。

  • 属性文件如下所示: 根据这一点,我尝试了以下方法: 在另一个组件中,我autowired应用特性:

  • 这是我的employee.hbm.xml: 所以,您可以注意到,在我的类中,它没有“id”属性。但是,我在数据库中创建id列,让它成为自动生成的主键。在这种情况下,我不知道应该在将我的类映射到我的数据库。如果我忽略了它,会不会是后来的一些问题呢?

  • 问题内容: 我想删除存储在属性文件中的键和值。我怎样才能做到这一点???? 问题答案: 首先使用API。 然后,您可以使用该方法。 最后将其保存到文件中。 也可以看看: 属性教程

  • 有人能告诉我如何将映射设置为尚不存在的属性的值吗?我一直在尝试一个更新表达式,但这只在属性存在并且属性的值已经是映射的情况下才有效。 我尝试使用,但后来我得到了: UpdateExpression无效:语法错误;标记:“=”,靠近:#key=:val” 我正在使用Java。请注意,我正在尝试使用UpdateItem请求来完成此操作。我刚刚想到,这可能不适用于映射。我只是假设它会,因为如果不存在,我

  • 问题内容: 对于我的程序,我想从属性文件中读取一个键,并从该键关联的值列表中读取。 最近我在尝试那样 我的属性文件如下所示- 我想要键A应该有一个包含contains 和B包含的列表。 因此Map应该是这样,但是我 在网上搜索了这种方法,但一无所获。我希望有办法。有什么帮助吗? 问题答案: 尝试将属性编写为以逗号分隔的列表,然后在加载属性文件后拆分值。例如 如果您在值中使用逗号,则还可以使用org