Spring没有找到文件中的属性

时间:2016-09-29 09:55:17

标签: java spring properties

我遇到了一个无法从我的Java代码访问Spring属性的问题。

以下是上下文:

<context:property-placeholder ignore-resource-not-found="false"
    location="file:/${setup.properties.directory}/setup.properties"/>

setup.properties文件如下所示:

paymentProvider.x.url=x

代码是:

SpringContext.INSTANCE.getEnvironment()
                    .getProperty("paymentProvider.x.url");

运行期间没有错误。但是,上面代码的结果为null

任何人都知道为什么?

2 个答案:

答案 0 :(得分:0)

修改context:property-placeholder配置,例如:

<context:property-placeholder location="classpath:setup.properties" />

如果要在该类级别访问此属性值,请使用一个注释,如:

@PropertySource(value = { "classpath:setup.properties" })

并在该类中读取属性值autowire Environment,如:

@Autowired
private Environment environment;

最后你可以访问:

environment.getRequiredProperty("paymentProvider.x.url");

答案 1 :(得分:0)

只有

@Configuration
@PropertySource("file:/${setup.properties.directory}/setup.properties")
public class SpringContext {
public static final ApplicationContext PROPERTIES_INSTANCE = new AnnotationConfigApplicationContext
        (SpringContext.class);
}

适合我。