Я пишу очень простое руководство по Spring (3.0.x) для моих коллег-разработчиков и столкнулось со странным поведением: bean-компонент типа java.util.Locale не подключается автоматически к другому bean-компоненту и не появляется сообщение об ошибке.Но, тем не менее, другой компонент создается нормально, просто поле равно нулю.
К деталям:
- Конфигурация основана исключительно на XML.
Ниже приведены определения bean-компонентов:
<bean id="spanishLocale" class="java.util.Locale">
<constructor-arg value="es"/>
<constructor-arg value="ES"/>
</bean>
<bean id="dateTimeBeanSetter" class="com.bsl.training.theclock.SimpleDateTimeBean3" autowire="byType"/>
Не использовалась автоматическая настройка.
Класс:
package com.bsl.training.theclock;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
public class SimpleDateTimeBean3 {
private Locale locale;
public SimpleDateTimeBean3() {
}
public void setLocale(final Locale loc) {
locale = loc;
}
public Locale getLocale() {
return locale;
}
public String getDateTime() {
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, locale);
return df.format(new Date());
}
}
- Если я добавлю поле в класс SimpleDateTimeBean3, тип которого является одним из моих собственных классов, и такой бин существует, все работаетв совершенстве.
- Ошибки не выводятся, оба бина (spanishLocale, dateTimeBeanSetter) создаются и доступны из ApplicationContext, но вызов getDateTime () для бина 'dateTimeBeanSetter' дает NPE.
Anyидеи?
Заранее спасибо.