Как автоматически связать конструкторы и свойства в Spring - PullRequest
1 голос
/ 11 июля 2011

Следующий пример не работает должным образом.Как я могу автоматически связать конструктор И свойства?Я могу создать бин Wizard с помощью мантии или палочки, но не обоими (без явного подключения).

Вот код:

public static class Wizard {

    private final Robe robe;
    private Wand wand;

    public Wizard() { robe = null; }

    public Wizard(final Robe robe) { this.robe = robe; }

    public void setWand(final Wand wand) { this.wand = wand; }

    @Override
    public String toString() {
        return super.toString() + ", robe = " + robe + ", wand = " + wand;
    }
}

public static class Wand { }

public static class Robe { }

Вот мои общие определения бинов:

<bean id="robe" class="org.hoipolloi.Foo.Robe" />
<bean id="wand" class="org.hoipolloi.Foo.Wand" />

Теперь, если я настрою мастера следующим образом:

<bean id="wizard" class="org.hoipolloi.Foo.Wizard" autowire="byType" />

Мантия никогда не будет заполнена:

// Prints org.hoipolloi.Foo$Wizard@7c7e7c7e, robe = null, wand = org.hoipolloi.Foo$Wand@72887288
System.out.println(ctx.getBean("wizard"));

Если я переключаюсь на автоматическое подключение через конструктор:

<bean id="wizard" class="org.hoipolloi.Foo.Wizard" autowire="constructor" />

Тогда у моего волшебника нет жезла:

// Prints org.hoipolloi.Foo$Wizard@18381838, robe = org.hoipolloi.Foo$Robe@2cec2cec, wand = null
System.out.println(ctx.getBean("wizard"));

Есть ли какой-нибудь способ автоматического подключения боба-волшебника, чтобы у него были и мантия, и жезл (т.е. оба аргумента и свойства конструкторапроводной)?

РЕДАКТИРОВАТЬ: я должен отметить, что «byName» ведет себя так же, как «byType», т. е. халат ноль.

1 Ответ

1 голос
/ 11 июля 2011

Я так не думаю.Либо создайте установщики для обоих, либо включите оба в конструктор.

Вы также можете использовать аннотации вместо автоматической автопроводки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...