【问题标题】:reference ${user.home} in Spring Java configuration [duplicate]在 Spring Java 配置中引用 ${user.home} [重复]
【发布时间】:2013-02-14 14:38:51
【问题描述】:

在 xml 配置中,我可以执行以下操作:

<context:property-placeholder
        location="file:${user.home}/.config}/api.properties"
        ignore-resource-not-found="true"
        system-properties-mode="OVERRIDE"/>

在 java 配置中,我会执行以下操作:

/**
 * @return a {@link org.springframework.context.support.PropertySourcesPlaceholderConfigurer} so that placeholders are correctly populated
 * @throws Exception exception if the file is not found or cannot be opened or read
 */
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() throws Exception {
    PropertySourcesPlaceholderConfigurer propConfig = new PropertySourcesPlaceholderConfigurer();
    Resource[] resources = new UrlResource[]
            {new UrlResource("file:${user.home}/.config/api.properties")};
    propConfig.setLocations(resources);
    propConfig.setIgnoreResourceNotFound(true);
    propConfig.setIgnoreUnresolvablePlaceholders(true);
    return propConfig;
}

但是这不明白 ${user.home}

【问题讨论】:

  • 今天有人对此表示赞同,所以我不明白它是重复的事实有什么意义,显然这目前有解决问题的正确答案。我也找不到重复的,版主可以提供链接吗?
  • 这不是上面提到的“更改 user.home 系统属性”的副本!有关系,但不一样!请删除重复的横幅,或提供指向类似问题的正确链接。
  • 这不是重复的,它特指在Spring中使用Properties,它有自己的语法和配置属性见baeldung.com/2012/02/06/properties-with-spring
  • 这不是重复的

标签: java spring configuration


【解决方案1】:

尝试${sys:user.home} 引用系统属性。系统环境使用${env:THE-ENV-VAR-NAME}

【讨论】:

  • 不起作用
  • @Arun BC,如果它不起作用对你来说,这不是拒绝投票的理由。您的情况的原因是您想使用系统变量user.home,因此应该使用语法${sys:user.home}。但是,您转向显然不存在的环境变量。
猜你喜欢
  • 2012-04-18
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多