주석을 통해 클래스 패스에서 가져온 스프링 콩이 있습니다.
@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에 주입하고 싶습니다. 나는 단순히 같은 것을 할 수 없다
<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 />
.