Spring上下文XML中未解析属性

时间:2012-01-11 15:22:22

标签: java spring properties javabeans

我使用

static main方法中创建我的Spring上下文
return new ClassPathXmlApplicationContext("applicationContext.xml");

applicationContext.xml里面我用

连接我的一个豆子
<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.SingleConnectionDataSource">
    <property name="driverClassName">
        <value>${db.driverclassname}</value>
    </property>
    ...
</bean>

我的类路径中有.properties个文件,其中包含值db.driverclassname

不幸的是我收到了以下错误:

Property 'driverClassName' threw exception; 
    nested exception is java.lang.IllegalStateException: 
        Could not load JDBC driver class [${db.driverclassname}]

我做错了什么?我使用的是Spring 2.5.5

2 个答案:

答案 0 :(得分:5)

你不需要PropertyPlaceholderConfigurer吗?

e.g。

<bean id="propertyConfigurer"      
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="location">
      <value>classpath:project.properties</value>
   </property>
</bean>

This article详细说明了用法。

答案 1 :(得分:0)

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:your.properties</value>
            </list>
        </property>
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
    </bean>