У мене є купа весняної квасолі, яку збирають із класу за допомогою анотацій, наприклад
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
// Implementation omitted
}
У весняному 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 />
.