У меня есть 3 bean-компонента, настроенных в XML следующим образом.
<bean id="classA" class="com.petehallw.test.MyClassA">
<constructor-arg name="threadPoolFactory" ref="threadPoolFactory"/>
<constructor-arg name="classB" ref="classB"/>
</bean>
<bean id="classB" class="com.petehallw.test.MyClassB"/>
<bean id="threadPoolFactory" class="come.petehallw.test.MyThreadPoolFactory"/>
Вы можете видеть, что две зависимости вставляются в MyClassA
- classB
и threadPoolFactory
.
В MyClassA
есть вызов MyClassA.threadPoolFactory.getThreadPool()
, который возвращает новый объект типа ThreadPoolExecutor
, назначенный переменной-члену MyClassA
.
Мой вопрос: как я могу дать MyClassB
ссылка на тот же экземпляр ThreadPoolExecutor
, если новый метод возвращается из этого метода?Это то, что я могу сделать с помощью конфигурации бина, или я вынужден добавить метод установки к MyClassB
?Я спрашиваю, потому что MyClassB
всегда должен иметь ненулевое ThreadPoolExecutor
(того же экземпляра, на который ссылается MyClassA
), поэтому на самом деле его следует передавать через конструктор.