Я пытаюсь настроить класс с конфигурацией на основе аннотаций в Spring 3, которая принимает примитивные значения в качестве аргументов конструктора:
@Component
class MyBean {
MyBean(String arg1, String arg2) {
// ...
}
}
И такой контекст приложения:
<beans [...]>
<context:component-scan base-package="com.example" />
<context:property-override location="/WEB-INF/example.properties" />
</beans>
Я пытаюсь найти способ указать, что аргументы конструктора должны быть взяты из файла свойств. По-видимому, это работает с конструкторами, которые принимают обычные bean-компоненты (например, MyClass(Bean bean1, OtherBean bean2)
), но только свойства?
Я также пробовал аннотировать аргументы конструктора с помощью аннотации @Value
Spring 3 и выражения EL для значения, например @Value("#{prop.Prop1}") arg1
, но это тоже не работает.
prop1=foo
. Если нужноmyBean.prop1=foo
, напишите@Value("${myBean.prop1}")
. Так работает<context:property-placeholder .../>
. 22.02.2010