app-context xml文件中的Spring util属性

时间:2015-09-22 11:03:48

标签: java xml spring

我在app-context.xml中描述属性文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:task="http://www.springframework.org/schema/task"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/jdbc 
        http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
        http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task.xsd
        http://www.springframework.org/schema/util 
        http://www.springframework.org/schema/util/spring-util.xsd">


    <context:annotation-config></context:annotation-config>

    <task:annotation-driven />


    <util:properties id="properties" location="file:/opt/vortal/VortalDataProvider/config/votral.properties"></util:properties>

</beans>

在任何java文件中我都可以通过以下方式访问此文件:

@Autowired
@Qualifier("properties")
private Properties properties;

但是,当我尝试访问camel-context.xml

中的属性时

像:

<cxf:rsClient id="vortalEndpoint" address="${endpointUrl}" 
     serviceClass="pl.test.dataprovider.Processor"
     skipFaultLogging="false"/> 

bean vortalEndpoint的值实际上是${endpointUrl} - 不读取来自poperties的值。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

<util:properties>

初始化java.util.Properties类的实例,查看Doc。这不是加载属性的正确方法,如果你在xml中这样做,你可以使用

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

然后,您可以使用

轻松访问您的媒体资源
 @Value("${whatever}")
 private String myValue