クラスにプロパティ ファイル (.properties) をロードしようとしています。別のスレッドの例に従っています:プロパティ ファイルから値を読み取る方法は? -しかし、それは私にとってはうまくいきません。
ここに私の簡単な実装があります:
applicationContext.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:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<context:annotation-config />
<!-- Load up properties -->
<context:component-scan base-package="com.test"/>
<context:property-placeholder location="file:///C:/dev/workspace/test-project/src/main/resources/appconfig.properties"/>
</beans>
TestConfig.java
@Component
public class TestConfig
{
@Value("${test.key1}")
private String key1;
public String getKey1()
{
return key1;
}
}
src/main/resources/appconfig.properties
test.key1=value
test.key2=value
Tomcat を起動すると、ログに次のように表示されます。
00:11:41,985 [localhost-startStop-1] INFO PropertyPlaceholderConfigurer - Loading properties file from URL [file:/C:/dev/workspace/test-project/src/main/resources/appconfig.properties]
しかし、getKey1() を実行すると、「null」が返されます。
私は何が欠けていますか?
質問 2: 「クラスパス」を使用する場合:
<context:property-placeholder location="classpath:appconfig.properties"/>
それはどのディレクトリを参照していますか?WEB-INF/classes のルート?