У меня есть куча весенних фасоли, которые собираются из пути к классам через аннотации, например.Как я могу вставить значение свойства в 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>
Я хочу, чтобы придать одно из свойств из app.properites в фасоли, показанного выше. Я не могу просто сделать что-то вроде
<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
?
Я задал по существу тот же вопрос, хотя в несколько ином сценарии: http://stackoverflow.com/questions/310271/injecting-beans-into-a-class-outside-the-spring-managed-context , Пока никто не смог ответить на него. – 2008-11-25 17:05:09
Обратите внимание, что с весны 3.1, `PropertyPlaceholderConfigurer` больше не является рекомендуемым классом. Вместо этого вместо этого следует использовать свойство PropertySourcesPlaceholderConfigurer. В любом случае вы можете использовать более короткое определение XML ` `. –
2013-10-30 14:09:07
http://stackoverflow.com/questions/28756014/how-to-configure-dynamic-properties-while-using-spring-boot – kervin 2016-07-30 04:35:03