首页 > 解决方案 > 属性源路径上的 Spring ${catalina.home} 给出错误

问题描述

我试图在春季的属性源路径上引用 ${catalina.home} 环境变量,如下所示

Configuration
@PropertySources(value={
    @PropertySource(value="file:${catalina.home}/sakai/local.properties"),
    @PropertySource(value="file:${catalina.home}/sakai/sakai.properties")
})
public class SpringCryptoContext {

    @Value("${aes.encryption.cipherString}")
    private String cyperString;

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertyConfigDev() {
        PropertySourcesPlaceholderConfigurer placeholderConfigurer = new PropertySourcesPlaceholderConfigurer()
        return placeholderConfigurer;
    }
}

但它给出了以下错误堆栈跟踪

原因:java.lang.IllegalArgumentException:无法在 org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper. java:174) 在 org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:204) 在 org.springframework.core.env.AbstractPropertyResolver 的 org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) org.springframework.context.annotation.ConfigurationClassParser 中 org.springframework.core.env.AbstractEnvironment.resolveRequiredPlaceholders(AbstractEnvironment.java:571) 中的 .resolveRequiredPlaceholders(AbstractPropertyResolver.java:178)。processPropertySource(ConfigurationClassParser.java:359) at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:255) at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:232) at org.springframework .context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:191) 在 org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:272) 在 org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java :232) 在 org.springframework 的 org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:199)。context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:168) ... 还有 8 个

标签: spring

解决方案


推荐阅读