2014-12-05 3 views
1

Я хочу уточнить по этому поводу:Spring автоматического связывание автоопределения

Что касается автоматического связывания «автоопределения»

В некоторых ресурсах, я нашел, если «Конструктор по умолчанию найден, то„авто проводка конструктор“применяется Если. не применяется «автоматическая проводка по типу».

И в некоторых ресурсах я нашел, если «Конструктор по умолчанию найден, затем применяется« автоматическая проводка по типу ». Если не применяется «конструктор автоматической проводки».

Может ли кто-нибудь подтвердить, что является правильным? путают с этим.

+0

Вы получаете неправильные экземпляры впрыскивается? В чем разница, о которой вы спрашиваете? –

+0

Нет, я смущен в заявлениях, я хочу знать, какой из них прав. –

+0

[проверить эту ссылку, он поможет вам] [1] [1]: http://stackoverflow.com/questions/3153546/how-does-autowiring-work-in-spring – MiDhuN

ответ

0

В этом не должно быть путаницы.

Autowect autodetect использует один из двух режимов, например, конструктор или по типу. Сначала он попытается найти допустимый конструктор с аргументами, если найден режим конструктора. Если в компоненте нет конструктора, или присутствует явный конструктор no-args по умолчанию, выбирается режим autowire byType.

4

В весеннем каркасе вы можете автоматически подключать бобы с функцией автоматической проводки. Чтобы включить его, просто определите атрибут autowire.

<bean id="customer" class="com.midhun.common.Customer" autowire="byName" /> 

Весной, 5 режимов автоматической проводки.

1.no - По умолчанию, нет автоматической проводки, установите его вручную с помощью «реф» атрибут

2.byName - Автоматическое подключение по имени свойства. Если имя компонента является таким же, как имя другого компонента , автоматически его проведите.

3.byType - автоматическая проводка по типу данных свойств. Если тип данных компонента совместим с типом данных другого свойства bean, автоматически его проведите.

4.constructor - byType mode в аргументе конструктора.

5.autodetect - если конструктор по умолчанию найден, используйте «autwired by constructor»; В противном случае используйте «autwire by type».

Нет, вы не обязаны использовать конструкторы default (no arg). Если нет конструктора, определенного в компоненте он выбрал его, если и хочет, вы можете использовать .. тип автоматической проводки в зависимости от ваших требований

@Qualifier также может помочь вам указать инъекции

вы можете использовать @Quanlifier, чтобы рассказать Spring о том, какой bean-компонент должен быть автоуведомлен.

package com.midhun.pgm; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.beans.factory.annotation.Qualifier; 

public class Customer { 

    @Autowired 
    @Qualifier("personA") 
    private Person person; 
    //... 

}

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