2016-06-23 3 views
0

Я немного запутался в вопросе о введении автоволн и пружинной зависимости.Автоувеличивание конфликтует с впрыском пружинной зависимости

Впрыск пружинной зависимости позволяет удалить любые определенные зависимости , которые могут иметь классы для других классов или сторонних интерфейсов, и загружать эти зависимости в класс во время построения.

Но при использовании аннотации с автоподдержкой мы программно записываем имя интерфейса или имя класса в классе java для ввода bean-компонента.

@Autowired 
public final Interface object; 

Разве это не противоречит впрыску пружинной зависимости? Поскольку, если мы определяем bean-элемент в XML, мы можем изменить его в любое время без изменения фактического java-кода. Но используя аннотацию, мы должны изменить код Java.

+1

«позволяет удалить любые определенные зависимости, которые может иметь класс для других классов или сторонних интерфейсов»: Нет. Вы удаляете зависимости от конкретных реализаций, то есть это может быть любой подтип того, что вы autowire. Точно так же, как с конфигурацией XML (единственное различие заключается в отсутствии аннотации '@ Autowired' в вашем коде). – zapl

+0

@ Автоматическое (технически называемое сканирование компонентов) и конфигурация XML старого стиля - это тот же результат. Поэтому вы должны использовать только одно. Выберите разумно в зависимости от типа вашего приложения. –

ответ

0

В зависимости от инъекции Весна требует, по крайней мере, контракта (Java Interface) в классе, и вы можете динамически переключать реализацию во время выполнения с помощью аннотации XML или Java. Даже если это делается с помощью XML, нам необходимо предоставить интерфейс конструкторам, поэтому для подключения компонента bean автоматически потребуется эта переменная класса интерфейса.

Но, как вы сказали, для размещения аннотаций на основе Java нам нужен доступ к исходному коду, и это своего рода главный недостаток с помощью аннотации. Это также относится к АОП. Чтобы создать класс Aspect, вам необходимо получить доступ к исходному коду.

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

  • Нет связанных вопросов^_^