ฉันมีถั่วสปริงจำนวนหนึ่งซึ่งหยิบขึ้นมาจาก classpath ผ่านคำอธิบายประกอบเช่น
@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>
ฉันต้องการฉีดคุณสมบัติอย่างใดอย่างหนึ่งจาก app.properites ลงในถั่วที่แสดงด้านบน ฉันไม่สามารถทำอะไรได้อย่างง่ายๆ
<bean class="com.example.PersonDaoImpl">
<property name="maxResults" value="${results.max}"/>
</bean>
เนื่องจาก PersonDaoImpl ไม่มีคุณสมบัติในไฟล์ Spring XML (ถูกดึงจาก classpath ผ่านคำอธิบายประกอบ) ฉันได้เท่าที่ต่อไปนี้:
@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 />
นิยามสั้น