2010-11-21 2 views
0

Hi Если класс A создан экземпляром весны. В классе A я запускаю другой объект класса B (регулярная интуиция с использованием нового оператора) Могу ли я создавать зависимости класса B только от манящего класса A?Инициирование зависимостей весной

class A{ 
    Xdao xDao; 
    B bvar = new B(); 
} 

Class B { 
    Ydao yDao; 
} 

Есть ли способ непосредственного впрыска класса ob B зависимостей при создании класса A?

есть что-то вроде: (атрибут только зависимые пакеты пример)

<bean id="classA" dependecy="classB"> 
    <property name="xDao" ref="xDao" /> 
</bean> 

<bean id="classB" > 
    <property name="yDao" ref="xDao" /> 
</bean> 

заранее спасибо.

Я хочу, чтобы не добавлять другое свойство (или конструктор) для установки вложенного вызова класса B , так как я не хочу менять существующий код.

+0

Пожалуйста, форматировать код Java в качестве кода (кнопка 01010101). И добавить некоторые разрывы строк ;-) –

ответ

1

Вы должны разрешить пружинной ручке весь экземпляр и инъекцию. Это означает, что вы должны вводить classB в classA:

<bean id="classA"> 
    <property name="xDao" ref="xDao" /> 
    <property name="bvar" ref="classB" /> 
</bean> 

<bean id="classB"> 
    <property name="yDao" ref="xDao" /> 
</bean> 

И избавиться от new B():

class A { 
    Xdao xDao; 
    B bvar; 
} 

class B { 
    Ydao yDao; 
} 
+0

Спасибо Neeme. Я просто смотрю на весенние документы, я вижу, что есть атрибут зависимости. Могу ли я использовать это. Как уже упоминалось, я не хочу менять существующий код, который еще не использует весеннюю инъекцию, но использует новый оператор. Tks. – bob

+0

Весна имеет атрибут «зависит от», но используется для разных целей. Если вы хотите использовать контейнер IoC (например, Spring), вы должны отказаться от права на создание новых объектов «вручную». Поэтому я думаю, у вас нет другого выбора, кроме как изменить этот существующий код. Или делайте некоторые сумасшедшие манипуляции байт-кодами во время загрузки класса, но это можно считать «черной магией». –

+0

Tks. Это решает мой вопрос. – bob

0

В тот момент, когда вы называете «новым», этот объект находится под контролем Весны.

Ввести или назвать «новым» - это тот или иной.

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