Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / аннотации или xml в спринг / 19 сообщений из 19, страница 1 из 1
28.10.2013, 22:20:52
    #38444197
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
есть ли какие-то объективные оценки, сравнительная характеристика может быть, чтобы сравнить эти два подхода к конфигурированию.
...
Рейтинг: 0 / 0
28.10.2013, 22:37:05
    #38444210
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
redwhite90 ,
Критерий очень простой - готовы вы засирать свой бизнес код аннотациям сторонних библиотек, тем самым намертво к ним привязываясь, или нет.
Лично я выступаю ярым противником аннотаций по двум причинам:
1) То, что я озвучил выше - код намертво привязывается к библиотекам.
2) Невозможно быстро понять, что откуда идет. Вот я смотрю, идет какой-то Autowired. А откуда он идет - хз, надо по другим классам тыкать. Вот я смотрю на аннотации Hibernate - и опять, я вижу только маленькую часть, надо тыкать по другим классам, что бы получить полную картинку. А в XML все компактно собрано в одном месте.
3) Наконец, с XML-ками гораздо удобнее тестировать.

Лично для меня определяющим является второй пункт.

Вообще, это очень холиварная тема, здесь сейчас будет срач с вероятностью 95%. Но общий посыл такой: ни от XML, ни от антоаций еще никто не умирал. Это не та проблема над которой нужно долго медитировать. Нравятся аннотации - используйте аннотации. Нравится XML - используйте XML.
...
Рейтинг: 0 / 0
28.10.2013, 22:56:49
    #38444230
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
cdtyjv,

я вот например не разделяю вашей любви к xml. смотришь на xml - сразу волосы дыбом, а на аннотации - сразу всё понятно.

насчёт библиотек - я не понял, что вы имеете ввиду.

и насчёт тестирования тоже не понял - у меня с тестированием вроде проблем не было.

вот я и вижу что везде, что каждый кулик свое болото хвалит, а мне надо как-то ОБЪЕКТИВНО это оценить.
...
Рейтинг: 0 / 0
28.10.2013, 23:14:23
    #38444242
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
redwhite90я вот например не разделяю вашей любви к xml. смотришь на xml - сразу волосы дыбом, а на аннотации - сразу всё понятно.

Субъективно.

redwhite90насчёт библиотек - я не понял, что вы имеете ввиду.

Domain Model вроде как не должна зависеть от Spring.
Аннотации привязывают ваши независимые классы к Spring API.

redwhite90вот я и вижу что везде, что каждый кулик свое болото хвалит, а мне надо как-то ОБЪЕКТИВНО это оценить.
Объективно, на простых решениях - аннотации норм. На крупных решениях есть нюансы
1) Аннотациями не всегда можно сделать, что достаточно не сложно делается на XML
2) По спринговому XML конфигу можно примерно представить структуру всего приложения, не читая сами классы.
3) XML позволяет иметь несколько разных конфигураций для одних и тех же классов. С аннотациями тоже можно, но сложнее. Нужно аккуратнее различать что общего у конфигураций, а что различается.
...
Рейтинг: 0 / 0
28.10.2013, 23:18:49
    #38444245
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
redwhite90 ,
К сожалению, не все вещи можно подвести под какие-то объективные критерии. Ведь мы, программисты, люди. И пишем мы тоже для людей. А значит фактор субъективности будет присутствовать всегда. И ваш вопрос - как раз больше зависит от субъективных факторов, чем от объективных.
Давайте по пунктам:
1) Я утверждаю, что XML читать удобнее. А вы утверждаете, что аннотации. Кто из нас прав? Никто, это чисто субъективная оценка. Я за свою практику насмотрелся на много XMLек, и мне с ними очень комфортно. Чистой воды субъективизм.
2) Привязка к библиотекам. Вот вы недавно спрашивали, что такое high cohesion. Отвечу: это когда один класс выполняет строго определенную функцию. Когда я проектирую классы и интерфейсы, я всегда стремлюсь, что бы в них не было ничего лишнего, что бы был этот самый high cohesion. Так вот, entity по своей сути - это просто контейнер для одной или нескольких записей из СУБД. На уровне entity мы оперируем такими вещами, как String, Map, Collection, примитивы, и т.д. То есть какими-то самыми базовыми вещами. И тут вы врываетесь, и запиливаете внутрь entity аннотации JPA и Hibernate, и она уже является не только хранилищем реляционных данных, но и хранилищем метаданных об эти данных. То есть это по сути DDL + DML в одном месте. Вы знаете хоть одну СУБД, где можно в рамках одного оператора забабахать и DDL, и DML? Я нет. Я предпочитаю, что бы данные жили отдельно, метаданные отдельн. Это мои аргументы против аннотаций. Они субъективны.
А теперь давайте посмотрим на это с другой стороны. Ну добавили вы эти аннотации в entity. Ну да, у вас уменьшился этот самый cohesion. Ну и что? Кому от этого плохо будет? Да, в каких-то редких сценариях это не будет работать, из-за особенностей ТЗ. Но у вас сейчас есть такой сценарий? Да в подавляющем большинстве случаев с аннотациями можно жить, и ни о чем не париться. Это тоже субъективное мнение, просто с другой стороны.
3) По тестам - это я опять таки выдаю субъективные ощущения, так как я в целом люблю XML, мне с ними комфортнее.

Вот такие дела. И если вы обратите внимание, то все холивары возникают как раз таки в темах, где много субъективизма, и мало фактов. Аннотации vs XML, нужны DTO или нет, rich model vs anemic model, хороший Hibernate или плохой, и т.д.
...
Рейтинг: 0 / 0
29.10.2013, 00:46:07
    #38444294
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
Не надо забывать что lifecycle приложения состоит не только из программинга но еще и из
конфигурирования и бесконечного цикла эксплуатации. И если XML рассматривается со стороны
DSL для бизнес-задачи то он предпочтительнее. Ведь доступа к исходникам обычно не бывает.

А с точки зрения лаконичности и разработки Annotations удобнее ведь они - часть языка Java.
...
Рейтинг: 0 / 0
29.10.2013, 16:12:17
    #38445359
Pavel Kurakin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
cdtyjvВы знаете хоть одну СУБД, где можно в рамках одного оператора забабахать и DDL, и DML?

create table MyTable2 as select field1, field2 from MyTable1 where field3 > 100

:)
...
Рейтинг: 0 / 0
29.10.2013, 16:35:00
    #38445417
schwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
BlazkowiczОбъективно, на простых решениях - аннотации норм. На крупных решениях есть нюансы
1) Аннотациями не всегда можно сделать, что достаточно не сложно делается на XML
2) По спринговому XML конфигу можно примерно представить структуру всего приложения, не читая сами классы.
3) XML позволяет иметь несколько разных конфигураций для одних и тех же классов. С аннотациями тоже можно, но сложнее. Нужно аккуратнее различать что общего у конфигураций, а что различается.
1. Java конфигруцией и аннотациями можно сделать то, для чего на xml придется писать свои NamespaceHandler-ы для spring-а. А это очень увлекательно занятие.
2. Тоже самое можно сделать используя аннотации и java конфигурацию.- перечисляем где нам нужно классы модулей и все становится понятным.
3. Доступно с 3-его релизом спринга т.е. уже достаточно много лет.
...
Рейтинг: 0 / 0
29.10.2013, 16:38:55
    #38445431
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
schwa1. Java конфигруцией и аннотациями можно сделать то, для чего на xml придется писать свои NamespaceHandler-ы для spring-а. А это очень увлекательно занятие.

С "Java конфигруцией" и аннотации-то не нужны.

schwa2. Тоже самое можно сделать используя аннотации и java конфигурацию.- перечисляем где нам нужно классы модулей и все становится понятным.
Аннотации тогда зачем, если всё в Java конфигурации указано?

schwa3. Доступно с 3-его релизом спринга т.е. уже достаточно много лет.
Как называется?
...
Рейтинг: 0 / 0
29.10.2013, 17:11:41
    #38445515
schwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
Blazkowiczschwa1. Java конфигруцией и аннотациями можно сделать то, для чего на xml придется писать свои NamespaceHandler-ы для spring-а. А это очень увлекательно занятие.

С "Java конфигруцией" и аннотации-то не нужны.

schwa2. Тоже самое можно сделать используя аннотации и java конфигурацию.- перечисляем где нам нужно классы модулей и все становится понятным.
Аннотации тогда зачем, если всё в Java конфигурации указано?

schwa3. Доступно с 3-его релизом спринга т.е. уже достаточно много лет.
Как называется?
Аннотации без java-based конфигов ничем не отличается от xml. И использовать аннотации вместе с xml после 3 релиза есть смысл только в случае, если переписывать все эти xml банально не хочется.

И xml и Java конфигурация решают одну и туже задачу и аннотации везде работают одинаково. Как в xml конфиге с поддержкой автовайринга объект заинджектится контейнером, так и в java конфигурации он заинджектится без всякого вызова методов.

А проблемы с разными конфигурациями для одних и тех же объектов при java конфигов отсутствует как класс т.к. конфигурация это такой же код.
...
Рейтинг: 0 / 0
29.10.2013, 17:17:51
    #38445529
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
Xml лучше для нетривиальных случаев, скажем, если вы инжектите 1 бин в разные скопы, да и вообще, нагляднее. По аннотациям трудно сориентироваться. У нас вот тут по мере нарастания интерпрайза, аннотации и autowired потихоньку исчезают, xml и сеттеры остаются.
...
Рейтинг: 0 / 0
29.10.2013, 17:18:54
    #38445533
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
schwaАннотации без java-based конфигов ничем не отличается от xml. И использовать аннотации вместе с xml после 3 релиза есть смысл только в случае, если переписывать все эти xml банально не хочется.

И xml и Java конфигурация решают одну и туже задачу и аннотации везде работают одинаково. Как в xml конфиге с поддержкой автовайринга объект заинджектится контейнером, так и в java конфигурации он заинджектится без всякого вызова методов.

А проблемы с разными конфигурациями для одних и тех же объектов при java конфигов отсутствует как класс т.к. конфигурация это такой же код.
Разговор ни о чем. Вопрос был про XML vs Аннотации. Java конфигурация это аналог XML конфигурации, только в Java синтаксисе. Недостатков использования аннотаций он никак не отменяет. Поэтому почему вдруг XML противопоставляется Java конфигурации, мне не понятно. Это одно и то же. Вопрос в аннотациях.
...
Рейтинг: 0 / 0
29.10.2013, 17:19:29
    #38445538
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
ЛагманXml лучше для нетривиальных случаев, скажем, если вы инжектите 1 бин в разные скопы, да и вообще, нагляднее. По аннотациям трудно сориентироваться. У нас вот тут по мере нарастания интерпрайза, аннотации и autowired потихоньку исчезают, xml и сеттеры остаются.
Вот и я о том же.
...
Рейтинг: 0 / 0
29.10.2013, 17:44:34
    #38445598
schwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
BlazkowiczschwaАннотации без java-based конфигов ничем не отличается от xml. И использовать аннотации вместе с xml после 3 релиза есть смысл только в случае, если переписывать все эти xml банально не хочется.

И xml и Java конфигурация решают одну и туже задачу и аннотации везде работают одинаково. Как в xml конфиге с поддержкой автовайринга объект заинджектится контейнером, так и в java конфигурации он заинджектится без всякого вызова методов.

А проблемы с разными конфигурациями для одних и тех же объектов при java конфигов отсутствует как класс т.к. конфигурация это такой же код.
Разговор ни о чем. Вопрос был про XML vs Аннотации. Java конфигурация это аналог XML конфигурации, только в Java синтаксисе. Недостатков использования аннотаций он никак не отменяет. Поэтому почему вдруг XML противопоставляется Java конфигурации, мне не понятно. Это одно и то же. Вопрос в аннотациях.
Потому что аннотаций в вакууме меньше возможностей чем xml, а java конфиг дает аннотациям все то, чего им недоставало. До их появления у аннотаций не было модулей. Но уже несколько лет эта проблема решена. И с того момента все трудности, возникающие после применения аннотаций, это лишь проблемы дисциплины. Если можно раскидать объекты по xml, то по java классам их можно раскидать и подавно.
...
Рейтинг: 0 / 0
29.10.2013, 17:54:14
    #38445620
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
schwaПотому что аннотаций в вакууме меньше возможностей чем xml

Аллилуя! О чем тогда спор?

schwaа java конфиг дает аннотациям все то, чего им недоставало.
Зачем тогда аннотации, если есть конфиг?

schwaДо их появления у аннотаций не было модулей. Но уже несколько лет эта проблема решена. И с того момента все трудности, возникающие после применения аннотаций, это лишь проблемы дисциплины.

Вот и сводится к тому что у нас часть конфигурации на аннотациях, а часть на Java, там где аннотации не справляются.

schwaЕсли можно раскидать объекты по xml, то по java классам их можно раскидать и подавно.
Ну, вот опять. Вопрос был об аннотациях и конфигурации, а не о Java конфигурации и XML конфигурации.
...
Рейтинг: 0 / 0
29.10.2013, 18:02:38
    #38445636
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
Некоторые уже и вопрос в контекст Spring-а перенесли.
...
Рейтинг: 0 / 0
29.10.2013, 18:05:38
    #38445640
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
maytonНекоторые уже и вопрос в контекст Spring-а перенесли.
Spring в сабже указан.
...
Рейтинг: 0 / 0
29.10.2013, 18:14:05
    #38445657
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
Какая досада. Никуда от этой пружины не денешся.
...
Рейтинг: 0 / 0
29.10.2013, 18:14:08
    #38445658
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аннотации или xml в спринг
Вот ещё какой вопрос мне давно не даёт покоя. Сканирование, ведь, аннотаций по куче .class файлов, это же вообще не быстрая операция. Должна существенно увеличивать время запуска. Правильно?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / аннотации или xml в спринг / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]