2013-11-02 3 views
0

У меня есть класс A с полем даты, аннотированным с @Value, чтобы принять за значение по умолчанию текущую дату.Как работает @Value в SpEL?

Когда я создаю компонент в XML-файле, это поле, как ожидается, будет инициализировано текущей датой.

Когда я создаю новый объект с новым A() в основном тестовом классе, поле равно null.

Мой вопрос: как работает @Value. В документации говорится, что оно дает значение по умолчанию для поля, но работает ли оно только для beans? Как это обрабатывается?

+3

Да, только весенние управляемые бобы будут введены значением для аннотированного поля '@ Value'. –

ответ

2

При создании компонента с использованием файла XML Spring создает компонент и применяет инъекцию сконфигурированных полей, используя XML-конфигурацию или декорированную аннотациями, например. @Autowired, @Value и т.д ...

При создании боб с помощью new YourClass, то вы вручную создать экземпляр класса, таким образом, не обрабатываются весной.

Если вы хотите, чтобы Spring обрабатывала новые бобы, созданные по запросу, то есть используя ключевое слово new, вы можете обратиться к Spring injecting or autowiring datasource bean to class, пункт 3 и пояснению внизу, используя @Configurable.

Смежные вопросы