К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

@Autowired

Гость
0 - 17.03.2017 - 19:07
Всем добрый день.

Я сейчас с болью и страданиями осваиваю spring. И не могу понять, зачем нужна аннотация @autowired. Чем это лучше, чем просто вызвать конструктор\фабрику.

Ладно еще, когда связывание контекста происходит в xml-файле. Там хоть разница видна(надеюсь, со временем я ее пойму).
А @autowired - сплошные боль и страдания. Объясните пожалуйста, что в замен? зачем он нужен?



Гость
1 - 18.03.2017 - 21:18
https://martinfowler.com/articles/injection.html

Это один из т.н. "классиков", и в статье первичные идеи, какраз и ответы на вопрос зачем так извращенно, и какие достоинства/недостатки, хотя конечно там не все
Гость
2 - 18.03.2017 - 22:10
не, инверсия управления как раз вполне понятна. К ней, конечно, нужно привыкнуть, но когда все реализовано в виде xml-файла - видны преимущества: связывание происходит централизовано, в одном файлике, потенциально - без перекомпиляции.
А в случае с аннотациями - какой смысл? Все равно они размазаны по всему коду. Так что мешает вместо аннотации фабрику всобачить?
Гость
3 - 19.03.2017 - 14:46
Это пока этот файлик не разрастется до огромных размеров...
Гость
4 - 19.03.2017 - 16:12
все равно это лучше, чем этот же разросшийся файлик равномерно размазать по всему коду.
Гость
5 - 19.03.2017 - 18:39
Цитата:
Сообщение от Добрых дел мастер Посмотреть сообщение
что мешает вместо аннотации фабрику всобачить?
Таки рекомендую прочитать, т.к. там все написано а остальное можно догадаться самому:

>The key difference is that with a Service Locator every user of a service has a dependency to the locator.

(это про вкорячить фабрику)

>A contrasting case is where the assembly is quite complex, involving conditional steps. Once you start getting close to programming language then XML starts breaking down and it's better to use a real language that has all the syntax to write a clear program. You then write a builder class that does the assembly. If you have distinct builder scenarios you can provide several builder classes and use a simple configuration file to select between them.

это почему не юзать конфиги, к слову в те годы когда это писалось спринг юзал конфиги, и многие сичтали что это "хорошо", а потом оказалось что "плохо". А вот автор статьи уже тогда писал что в сих конфигах радости нет.

Так что советую вдумчиво и углубленно прочитать, я не со всем согласен с автором, в частности про ServiceLocator но вещи он пишет дельные.
Гость
6 - 20.03.2017 - 02:36
Если так рекомендуете - почитаю. Хотя, статья 2004 года, ни одной аннотации(с которыми у меня пока-что основные сложности) - что-то я сомневаюсь.
На первый взгляд, она может иметь историческое значение (как банда четырех), но за столько лет должны были появиться новые статьи\книги, где эти мысли вылизаны и проверены временем, плюс - новые идеи, новые инструменты.
Гость
7 - 20.03.2017 - 14:08
> за столько лет должны были появиться новые статьи\книги, где эти мысли вылизаны и проверены временем

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

> ни одной аннотации(с которыми у меня пока-что основные сложности)

в те годы аннотаций в java еще не было, а появление оных лишь добавило удобства - метаинформацию стало можно хранить в исхдниках и отказаться от конфигов. Без аннотаций приходилось гдето дополнительно указывать что это "бин и его зависимости"
Гость
8 - 21.03.2017 - 11:41
Так за столько лет исходные проблемы могут исчезнуть, стать не актуальны. Мы же сейчас не обсуждаем преимущества автомобилей пред лошадями. Мы знаем, что на данном этапе развития техники для езды нужен автомобиль.
Так и описанное в старых книгах\статьях. Эти проблемы - это же не законы природы. Это просто недостатки предыдущего подхода. А если я не знаю, что было до - зачем мне учить старые проблемы, чтобы потом героически их решать?
Гость
9 - 21.03.2017 - 13:30
8-Добрых дел мастер > зачем мне учить старые проблемы

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

все остальные проблемы акутальные

зы. и лошади все еще успешно применяются там где нет дорог и заправок


К списку вопросов






Copyright ©, Все права защищены