私は注釈を介してクラスパスから取得された一連のSpring Beanを持っています。
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
// Implementation omitted
}
Spring XMLファイルでは、PropertyPlaceholderConfigurerが定義されています。
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/app.properties" />
</bean>
上記のbeanにapp.properitesからプロパティの1つを注入したいと思います。私は単純に次のようなことはできません
<bean class="com.example.PersonDaoImpl">
<property name="maxResults" value="${results.max}"/>
</bean>
PersonDaoImplはSpring XMLファイルでは機能しないため(注釈を介してクラスパスから取得されます)。私は次のようにしています:
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
@Resource(name = "propertyConfigurer")
protected void setProperties(PropertyPlaceholderConfigurer ppc) {
// Now how do I access results.max?
}
}
しかし、私が興味のあるプロパティにどのようにアクセスするのかは明確ではありませんかppc
?
PropertyPlaceholderConfigurer
は推奨クラスではなくなりました。PropertySourcesPlaceholderConfigurer
代わりに優先します。いずれの場合も、短いXML定義を使用できます<context:property-placeholder />
。