2015-03-22 4 views
1

У меня распространенная ситуация: у меня есть сценарий, когда создание объекта обрабатывается построителем. , например.Как инициализировать компонент, который следует за шаблоном Builder

Class Client; // Creates a builder object. 
Class Builder; // Can be used to set the desired params and then invoke build on it to return Service object. 
e.g.- 
client.createBuilder().withDefaultBinding(new StandardBinder()) 
      .withDefaultMetricsFactory(new StandardMetricsFactory()) 
      .withCacheSolution(cacheSolution) 
      .build(); 

Однако, Builder не имеет стандартных сеттеров. Он выполняет некоторые задачи, а затем устанавливает результат во внутренний объект Builder, поэтому их нельзя рассматривать как свойства, которые есть.

Я прочитал: Spring: Using builder pattern to create a bean

Я хочу, чтобы вызвать построитель получить конечный объект полностью с использованием конфигурации Spring XML. Я не хочу создавать фабрику самостоятельно - я хочу знать, есть ли способ использовать конфигурацию Spring XML Spring для создания объекта службы в приведенном выше сценарии? Мое понимание Spring создает у меня впечатление, что это можно сделать, вызвав цепочку методов setter (не задавая явно свойства) объектов-строителей и, наконец, вызывая сборку для получения объекта службы. Если это возможно, как это будет достигнуто?

ответ

7

Невозможно сделать это из коробки с XML. Определите FactoryBean с соответствующими свойствами (сеттерами) для всех значений, которые вам нужны, и объявите компонент этого типа FactoryBean.

+0

Большое спасибо. Я потратил столько времени на поиски этого. :( – rajneesh2k10

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