2012-05-29 2 views
1

Я хочу создать новый DateTimeFormatter в качестве компонента и передать его другому компоненту.Как инициализировать компонент из статического метода с параметром, определенным весной весной

Это, как я хотел бы сделать это в коде ...

DateTimeFormatter formatter = DateTimeFormat.forPattern("blah");

Но как я инициализировать форматировщик весной?

Вот решение, которое я придумал, вдохновленный полезные ответы

<bean id="dateFormatter" class="org.joda.time.format.DateTimeFormat" factory-method="forPattern"> 
    <constructor-arg value="blah"/> 
</bean> 

ответ

1

Это было некоторое время, так как я использовал весна, но здесь идет:

DateTimeFormatter не распространяется от интерфейса (Я только нашел ссылку на Joda), поэтому все, что использует его, должно точно ссылаться на тип. Это означает, что вы не получите никакой выгоды от инъекции зависимостей (поскольку то, что использует форматтер, тесно связано с точным типом форматирования). Так вы действительно хотите это сделать?

Предполагая, что вы делаете, from the documentation, просмотрите разделы 4.3.2.2 и далее, и это дает вам все способы создания компонента. Вы можете создать форматировщик с помощью статического метода, а затем передать его в конструктор того, что его использует (вставка конструктора, раздел 4.4.1.1)

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