Ich habe ein paar Frühlingsbohnen, die über Anmerkungen vom Klassenpfad aufgenommen werden, z
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
// Implementation omitted
}
In der Spring XML-Datei ist ein PropertyPlaceholderConfigurer definiert:
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/app.properties" />
</bean>
Ich möchte eine der Eigenschaften von app.properites in die oben gezeigte Bean einfügen. Ich kann so etwas nicht einfach machen
<bean class="com.example.PersonDaoImpl">
<property name="maxResults" value="${results.max}"/>
</bean>
Da PersonDaoImpl nicht in der Spring-XML-Datei enthalten ist (es wird über Anmerkungen aus dem Klassenpfad abgerufen). Ich bin bis zu folgendem gekommen:
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
@Resource(name = "propertyConfigurer")
protected void setProperties(PropertyPlaceholderConfigurer ppc) {
// Now how do I access results.max?
}
}
Aber mir ist nicht klar, wie ich auf die Immobilie zugreife, an der ich interessiert bin ppc
?
PropertyPlaceholderConfigurer
nicht mehr die empfohlene Klasse ist. Lieber PropertySourcesPlaceholderConfigurer
stattdessen. In jedem Fall können Sie die kürzere XML-Definition verwenden <context:property-placeholder />
.