1. 程式人生 > >Spring配置報錯

Spring配置報錯

1. 報錯資訊

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'tables'
	at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:173)
	at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:125)
	at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer$PlaceholderResolvingStringValueResolver.resolveStringValue(PropertyPlaceholderConfigurer.java:255)
	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:748)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:717)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)
	... 28 more

解決辦法:

1) 檢查配置的檔案路徑,檔案內容是否正確

2) 當配置了多個PropertyPlaceholderConfigurer時,需要增加一些配置項。

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="order" value="1"/>
  <property name="ignoreUnresolvablePlaceholders" value="true"/>
  <property name="locations">
  	<list>
  		<value>classpath:config/dbcp.properties</value>
		<value>classpath:config/common.properties</value>
  	</list>
  </property>
</bean>

其中order屬性代表其載入順序,而ignoreUnresolvablePlaceholders為是否忽略不可解析的Placeholder,如配置了多個PropertyPlaceholderConfigurer,則需設定為true