Property Placeholder
4195 ワード
propertiesファイルから構成をロードする必要がある場合があります.以前は次のようにしていました.
最近、コードがよりきれいであることがわかりました.
bean定義では「${}」という方法で値を下げることができます.
Properitesファイルのパスエラー、スペルエラーを除いて、「Could not resolve placeholder」が発生したのは、複数のPropertyPlaceholderConfigurerまたは複数のが使用されている可能性が高い.
例えばdaoがありますxmlはdbConnectを読み込む.properties、もう一つdfs.xml読み出しdfsManager.そしてweb.xml統一loadこの2つのxmlファイル
Xmlコードコレクションコード
contextConfigLocation
WEB-INF/config/spring/dao.xml,
WEB-INF/config/spring/dfs.xml
この2つのxmlファイルにそれぞれ
Xmlコードコレクションコード
では、必ず「Could not resolve placeholder」が出ます.
1つのSpringファイルでも複数のSpringファイルが統一されたloadでも、直接書くことを覚えておいてください.
Xmlコードコレクションコード
許されない.
ソリューション:
(1)Spring 3.0では、次のように書くことができます.
/>
/>
どちらもignore-unresolvable=「true」を付けなければならないので注意してください.一つにもう一つを加えなくてもだめです.
(2)Spring 2.5でにignore-unresolvable属性がない場合、PropertyPlaceholderConfigurerに変更できます.実はは次の構成と等価です
Javaコードコレクションコード
それだけに、複数のP r e r t y P e r e t y P r a c e holderConfigurerにignoreUnresolvablePlaceholdersを付けない属性を書くのも同様に「Could not resolve placeholder」が出ます.
両者は等価ですが、を書くのが好きだと思いますが、簡単ですね.Spring 3.0なら、ソリューション(1)を直接使うのは簡単です.Spring 2.5の場合は、PropertyPlaceholderConfigurerに書き換えるのに苦労する必要があります
<bean id="jdbcProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:/spring/jdbc.properties</value>
</list>
</property>
</bean>
最近、コードがよりきれいであることがわかりました.
<context:property-placeholder location="classpath:spring/jdbc.properties" />
bean定義では「${}」という方法で値を下げることができます.
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="${jdbc.initialSize}" />
<property name="maxActive" value="${jdbc.maxActive}" />
<property name="maxIdle" value="${jdbc.maxIdle}" />
<property name="minIdle" value="${jdbc.minIdle}" />
</bean>
Properitesファイルのパスエラー、スペルエラーを除いて、「Could not resolve placeholder」が発生したのは、複数のPropertyPlaceholderConfigurerまたは複数の
例えばdaoがありますxmlはdbConnectを読み込む.properties、もう一つdfs.xml読み出しdfsManager.そしてweb.xml統一loadこの2つのxmlファイル
Xmlコードコレクションコード
WEB-INF/config/spring/dao.xml,
WEB-INF/config/spring/dfs.xml
この2つのxmlファイルにそれぞれ
Xmlコードコレクションコード
では、必ず「Could not resolve placeholder」が出ます.
1つのSpringファイルでも複数のSpringファイルが統一されたloadでも、直接書くことを覚えておいてください.
Xmlコードコレクションコード
許されない.
ソリューション:
(1)Spring 3.0では、次のように書くことができます.
どちらもignore-unresolvable=「true」を付けなければならないので注意してください.一つにもう一つを加えなくてもだめです.
(2)Spring 2.5で
Javaコードコレクションコード
それだけに、複数のP r e r t y P e r e t y P r a c e holderConfigurerにignoreUnresolvablePlaceholdersを付けない属性を書くのも同様に「Could not resolve placeholder」が出ます.
両者は等価ですが、