在我的应用程序上下文的顶部,我声明了一个 PropertyPlaceholderConfigurer
...
<context:annotation-config/>
<context:property-placeholder location="classpath:foo.properties"/>
...
稍后,我声明了一个由该属性文件中的属性参数化的数据源 bean
<bean id="someDataSource" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close">
<property name="connectionCachingEnabled" value="true"/>
<property name="URL" value="${database.url}"/>
<property name="user" value="${database.user}"/>
<property name="password" value="${database.password}"/>
</bean>
在部署期间,我注意到在初始化 PropertyPlaceholderConfigurer 之前创建了数据源 bean 并尝试建立连接。这导致我的数据源参数化没有被填充。
知道为什么会发生这种情况吗?
bean 是否有特定的创建顺序?某些 bean 是否总是在其他 bean 之前初始化?有没有办法确保在所有其他 bean 之前加载 PropertyPlaceholderConfigurer?