2011-12-15 2 views
0

Я шел через учебники весны 3 в http://www.vaannila.com/spring/spring-annotation-controller-1.htmlSpring3 @autowire Объясните?

Но у меня есть одно сомнения относительно autowired особенности spring3.

Если вы посмотрите пример кода, указанный на сайте, он использовал @Autowired до setUserService. Теперь у меня есть несколько вопросов об этом.

  1. Является ли это стандартом использования автопогрузчика ?? это создать интерфейс, реализовать его метод, а затем, наконец, в вашем классе контроллера использовать метод setter интерфейса класса.

  2. если я использую autowire таким образом, то какая польза я получил?

  3. что такое код замены autwire?

ответ

1

.1. Является ли это стандартом использования autwire? это создать интерфейс, реализовать его метод, а затем, наконец, в вашем классе контроллера использовать метод setter интерфейса класса.

Да, это более или менее стандартный способ, но это всего лишь конвенция. Some считают, что это плохая практика. Он не применяется каким-либо образом весной (однако вы можете быть вынуждены добавить CGLIB в свои зависимости, если вы не используете интерфейсы).

.2. если я использую autowire таким образом, какая у меня польза?

Не знаю, что вы имеете в виду что путь, а просто назвать несколько преимуществ: облегчает тестирование, развязкой, меньше кода инфраструктуры ...

.3. что является заменяющим кодом использования autwire?

Снова трудно сказать, что вы имеете в виду под номером Код замены. Существует множество других методов: вы можете использовать XML, @Configuration, @Resource, @Inject, (возможно, несколько других ats), инъекция конструктора, инъекция поля, инъекция установщика (тот, что в учебнике), поиск весенних фасоли непосредственно с BeanFactory ...

+0

Спасибо, что ответили 2. Если я использую autowire таким образом, то какая у меня польза? Я имел в виду ссылаться на пример, приведенный в ссылке, «таким образом» означает создание интерфейса, его реализацию и использование метода setter. 3. что является заменяющим кодом использования autwire? Я имел в виду, без весны, как бы я реализовал вышеуказанный код. Новый вопрос: упомянутый пример использовал autowire, и вы упомянули другие аннотации, такие как @config. который является лучшим методом для всех? лучший способ реализовать? – vipul12389

+0

@ vipul12389: Объявление. 2: многие люди используют интерфейс для разделения контракта от реализации и упрощают его реализацию в будущем.Однако другие считают дополнительный интерфейс просто шумом (см. Ссылку выше). Объявление. 3. Ну, без весны ... вам придется делать это вручную :-). Объявление. новый вопрос: в настоящее время я предпочитаю смесь '@ Autowired' и' @ Configuration'. Это действительно зависит от вас, Весна дает вам эту свободу. –

+0

ОК спасибо, вы ответили почти на мой запрос. но все еще остается маленький вопрос, что вы сказали, что мне нужно сделать это вручную, так что вы можете опубликовать код, который работает вручную с помощью autowwire? – vipul12389

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