|
|
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
2 svenom , для завершения тема про минимизацию ресурсов. Возможно я полностью не прав. Тогда вопрос - почему в стандарте JavaEE появились профили? какую задачу они реализуют? Не для кого не секрет (надеюсь) что JSR пишутся после того, как определенный функционал уже реализован и показал свою эффективность. Стандарты всегда играют догоняющую роль - сначала реализация, потом стандарт. JPA рисовали посматривая на Hibernate, аннотации делали посмотрев на XDoclet и его необходимость и рабоче-способность для java приложений. Вопрос с какой реализации рисовали JavaEE web profile? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:28:01 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDA , Давайте спросим об этом соответствующий JSR : JSRProfiles The reach of the Java EE platform has become so broad that it has lost some of its original focus. To refocus the Java EE platform on particular classes of developers and applications, we propose the introduction of Java EE platform Profiles. Profiles will reference the Java EE platform, as defined by the JCP process, and may include a subset of Java EE platform technologies, additional JCP technologies not part of the base Java EE platform , or both. In addition to defining the base Java EE platform, this specification will define the rules for referencing Java EE platform technologies in Java EE Profiles. This expert group will also define the first version of a Java EE Web Profile - a subset of the Java EE platform targeted at web application development. This profile will provide a more gentle introduction to the Java EE platform , providing only those technologies needed by most web application developers, without the enterprise technologies that sometimes confuse such developers . Про ресурсы и производительность ни слова, что вполне логично. Дополнительные 50-100-200 метров памяти уже давно не вызывают каких-либо проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:44:00 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomНу ок, так вы тогда и говорите, что "JBoss имеет негибкие политики репликации", а не обобщайте это на все JavaEE сервера.JavaEE сервера в общем виде не обладают свойством "гибких политик репликации", т.к. как минимум несколько из них не обладают данным свойством Потому вы, svenom, можете сказать что отдельные представители возможно и имеют более гибкую политику. Но говоря в общем о JavaEE complaint говорить о обязательном наличии гибких политик нельзя. Говоря о JavaEE можно говорить о наборе свойств присущих всем JavaEE серверам, так что в общем случае это сводится к набору JSR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:45:47 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAJavaEE сервера в общем виде не обладают свойством "гибких политик репликации", т.к. как минимум несколько из них не обладают данным свойством 1) Никаких JSR и иных спецификаций по кластеризации серверов приложений не существует. А следовательно "гибкость" зависит исключительно от вендора. Поэтому утверждение "AppServer'a не обладают достаточной гибкостью в кластеризации" не имеет вообще никакого смысла. 2) Пример "гибкой" кластеризации (опять таки - я не знаю ваших критериев) - WebSphere. Если вам будет не лень, пробегитесь по вот этому документу - http://www.redbooks.ibm.com/redbooks/pdfs/sg246688.pdf. Если лень - то прочитайте хотя бы главу 2.4.1. Это достаточно гибко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 15:02:57 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenom, авторТранзакции, безопасность, логирование. Почитайте про AOP в целом, поймете. Что такое декларативное управление транзакциями знаете? Можете предлолжить что-то "проще"? 1)Логирование. На нужные классы навешиваются соответствующие аннотации, во время сборки на них натравливается AspectJ. Не вижу, где здесь можно использовать Spring. 2)декларативное управление транзакциями. Пишем 2 функции: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: java 1. 2. 3. Код, который хочет залезть в базу, получает коннекшн через getConnection(). Транзакции заворачиваем в WithTransaction. Я не вижу недостатков в таком способе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 22:46:40 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ1)Логирование. На нужные классы навешиваются соответствующие аннотации, во время сборки на них натравливается AspectJ. Не вижу, где здесь можно использовать Spring.Ну как бы спринг именно так и работает (вернее, это один из вариантов его работы). Йуный джавистЪЯ не вижу недостатков в таком способе.Бывает. А я вот вижу в вашем подходе следующие недостатки: 1) Где параметры транзакции? Уровень изоляции, параметры присоединения/открытия (Requires, RequiredNew, Supported, Mandatory и т.д.)? Вы вообще про такие вещи слышали? 2) Как вложенные транзакции будут у вас работать? 3) Как мне быть, если я хочу откатывать транзакции только при определенных исключениях? 4) Runnable - громаднейший косяк. То есть вы заставляете код жестко подстравиться под вас - в классе может быть не более одного транзакционного метода. То есть пишу я значит сервис с 3-мя транзакционными методами, в Спринге мне для этого надо написать 1 класс, в вашем случае минимум 3. Ну круто, чо. Теперь некоторое пояснение - декларативные транзакции на то и декларативные, что они вообще никак не проявляют себя в коде и не накладывают на него никаких ограничений. Spring нам такую возможность дает, ваш подход - заставляет разработчика подстраиваться под надуманное правило "implements Runnable", то есть ни о какой декларативности речи не идет в принципе. Йуный джавистЪЯ не вижу недостатков в таком способе.Ок, не вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 23:17:02 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenom1) Где параметры транзакции? Уровень изоляции, параметры присоединения/открытия (Requires, RequiredNew, Supported, Mandatory и ЭЭЭЭ это есть в спринге ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 23:22:18 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
justforsqlrusvenom1) Где параметры транзакции? Уровень изоляции, параметры присоединения/открытия (Requires, RequiredNew, Supported, Mandatory и ЭЭЭЭ это есть в спринге ?тебе тоже ссылку на спринг референсе дать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 23:26:31 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
justforsqlruЭЭЭЭ это есть в спринге ?Ну как бы без этого в принципе нельзя говорить о транзакциях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 23:29:31 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
grasoff.netjustforsqlruпропущено... ЭЭЭЭ это есть в спринге ?тебе тоже ссылку на спринг референсе дать? :) угу там где эти атрибуты указаны ну или их аналоги ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 23:31:32 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ , С вашего позволения позволю себе продолжить разнос _кода_без_недостатков_: 5) А как мне параметры передать в транзакционный метод? У нормальных людей это выглядит вот так: Код: java 1. У вас же я должен сделать следующее: Код: java 1. 2. То есть на каждый вызов сервиса нужен новый одноразовый инстанс этого сервиса. Круто. 6) А как бы мне вернуть результат вызванного транзакйионного метода? У нормальных людей это выяглдит вот так: Код: java 1. У вас это не выглядит никак, ибо это невозможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 23:34:16 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
При создании классов у нас есть целиком язык Java, а не ограниченный xml-язык спринг конфигураций. В конфигурации спринга мы определяем только зависимотси, то есть что куда вставить. Мы никак не ограничены по части Java-кода. В Java нормальные средства декомпозиции, а в Spring XML - кривые. Чтобы разбить большой xml файл на части, надо использовать import. Если в двух файлах, подтягиваемых импортом, есть бины с одинаковыми именами, то спринг не сообщит об ошибке, а молча использует то описание бина, которое встретится последним. Счастличой отладки. В Java просто невозможна ситуация, когда, например, в классе определены 2 метода с одинаковыми именами, и используется только последний. Мы вносим изменения в первый, и не понимаем, почему эти изменения не действуют. Если для описания конфигурации полноценный язык не нужен, то зачем тогда надо было делать Spring EL? Мне кажется, через пару лет разрешат вставлять в XML файлы куски кода на нормальных языках и конфигурировать бин с названием codeEvaluator, который наследует от AbstractCodeEvaluatorFactory, и у которого из коробки три реализации - JavaCodeEvaluatorFactory, JavaScriptCodeEvaluatorFactory и еще какой-нибудь GroovyCodeEvaluatorFactory. В чем заключается проблем подтянуть несколько мегабайт библиотек? Мы же не в 80-е годы живем. В нескольких мегабайтах библиотек содержатся тысячи багов и граблей (см пример выше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 23:44:14 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenom, авторУ вас же я должен сделать следующее: Service service = new Service(param1, param2); withTransaction(service); То есть на каждый вызов сервиса нужен новый одноразовый инстанс этого сервиса. Круто. В моем коде Runnable - точный аналог TransactionCallback , а WithTemplate - упрощенный аналог TransactionTemplate . Разумеется, бины не должны имплементить Runnable, так же как они не должны имплементить TransactionCallback. Service вызывается так: Код: sql 1. 2. 3. 4. 5. 6. Если мне не изменяет память, такая идиома называется template method. Странно, что вы не поняли - в спринге сотни таких методов(JdbcTemplate в основном из них состоит). На остальные вопросы отвечу завтра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 23:56:19 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Кстати, раз вы не уловили аналогии моего WithTransaction со спринговским TransactionTemplate, можно сделать вывод, что вы Spring сами не знаете. При этом позволяете себе хамить: С вашего позволения позволю себе продолжить разнос _кода_без_недостатков_: . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 00:03:22 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪВ Java нормальные средства декомпозиции, а в Spring XML - кривые.Вам виднее Йуный джавистЪЧтобы разбить большой xml файл на части, надо использовать import. Если в двух файлах, подтягиваемых импортом, есть бины с одинаковыми именами, то спринг не сообщит об ошибке, а молча использует то описание бина, которое встретится последним.Счастличой отладки. 1) Пишем xml-конфигурацию log4j 2) Пишем конфигурацию Hibernate 3) Пишем persistence.xml 4) Пишем определения сервлетов в web.xml 5) Пишем структуру приложения в application.xml 6) Пишем сборочный скрипт для Ant или Maven Что объединяет все эти случаи? То, что на этапе компиляции мы не сможем отловить ошибки в xml-никах. Ай беда беда, это смахивает заговор прям Рекомендации: 1) Боитесь описания контекста в XML - переходите на аннотации 2) http://en.wikipedia.org/wiki/Convention_over_configuration - это для общего развития, чтобы вы понимали откуда вообще к нам пришли эти дурацкие xml-ники, сулящие адский ад при дебаге. Йуный джавистЪВ Java просто невозможна ситуация, когда, например, в классе определены 2 метода с одинаковыми именами, и используется только последний. Мы вносим изменения в первый, и не понимаем, почему эти изменения не действуют.Эммм, ну вы как бы в контексте спринга описываете только имена классов и зависимости. Методы в нем не описываются Йуный джавистЪЕсли для описания конфигурации полноценный язык не нужен, то зачем тогда надо было делать Spring EL? Мне кажется, через пару лет разрешат вставлять в XML файлы куски кода на нормальных языках и конфигурировать бин с названием codeEvaluator, который наследует от AbstractCodeEvaluatorFactory, и у которого из коробки три реализации - JavaCodeEvaluatorFactory, JavaScriptCodeEvaluatorFactory и еще какой-нибудь GroovyCodeEvaluatorFactory.Все может быть Йуный джавистЪВ нескольких мегабайтах библиотек содержатся тысячи багов и граблей (см пример выше).Голословщина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 00:04:03 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ, к сожалению, это издержки декларативности. Вы больше конфигурируете и меньше программируете. Вместо обработки транзакций по БЛ и вместе с БЛ, вы навешиваете мета-язык (аннотации\xml) над Java. Другой подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 00:04:12 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
авторВ моем коде Runnable - точный аналог TransactionCallback, а WithTemplate - упрощенный аналог TransactionTemplate. Разумеется, бины не должны имплементить Runnable, так же как они не должны имплементить TransactionCallback.Ок, ответ принимается, вопрос снимается. авторКстати, раз вы не уловили аналогии моего WithTransaction со спринговским TransactionTemplate, можно сделать вывод, что вы Spring сами не знаете. При этом позволяете себе хамитьИнтересный вывод. Напоминаю вам, что речь идет про декларативные транзакции . Вот вам пример, как это выглядит в спринге (один из 2х вариантов). 1. Интерфейс: Код: java 1. 2. 3. 4. 5. 2. Реализация: Код: java 1. 2. 3. 3. Спринг: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 4. Вызов транзакционных методов: Код: java 1. 2. 3. Ну что, вы начинаете понимать, что такое декларативные транзакции ? Вы все еще убеждены, что я не знаю Spring? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 00:18:46 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomавторВ моем коде Runnable - точный аналог TransactionCallback, а WithTemplate - упрощенный аналог TransactionTemplate. Разумеется, бины не должны имплементить Runnable, так же как они не должны имплементить TransactionCallback.Ок, ответ принимается, вопрос снимается. авторКстати, раз вы не уловили аналогии моего WithTransaction со спринговским TransactionTemplate, можно сделать вывод, что вы Spring сами не знаете. При этом позволяете себе хамитьИнтересный вывод. Напоминаю вам, что речь идет про декларативные транзакции . Вот вам пример, как это выглядит в спринге (один из 2х вариантов). 1. Интерфейс: Код: java 1. 2. 3. 4. 5. 2. Реализация: Код: java 1. 2. 3. 3. Спринг: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 4. Вызов транзакционных методов: Код: java 1. 2. 3. Ну что, вы начинаете понимать, что такое декларативные транзакции ? Вы все еще убеждены, что я не знаю Spring? О спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 11:30:59 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
justforsqlruугу там где эти атрибуты указаны ну или их аналоги http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html там чуть ниже середины картинки симпатишные (9.5.7) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 11:47:02 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
grasoff.net http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html Много раз натыкался на эту статью. все время распухала голова, уж очень там перегружено всяким низкоуровневым AOP-ом. В реальности, если наша цель только декларативные транзакции, то выбор обычно идет между либо связкой transactionManager/transactionInterceptor/proxy-бины (как в моем примере), либо аннотациями, прямой AOP нафиг не сдался. Но эта статья очень хорошо раскрывает теоретические аспекты декларативных транзакций и преимуществ их применеия, а потому настоятельно рекомендуую ее к прочтению Йуный джавистЪ . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 11:57:27 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ Если в двух файлах, подтягиваемых импортом, есть бины с одинаковыми именами, то спринг не сообщит об ошибке, а молча использует то описание бина, которое встретится последним. "меня терзают смутные сомнения" (с), что вы не разобрались со спрингом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 11:59:33 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomgrasoff.net http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html Много раз натыкался на эту статью. все время распухала голова, уж очень там перегружено всяким низкоуровневым AOP-ом. В реальности, если наша цель только декларативные транзакции, то выбор обычно идет между либо связкой transactionManager/transactionInterceptor/proxy-бины (как в моем примере), либо аннотациями, прямой AOP нафиг не сдался. Но эта статья очень хорошо раскрывает теоретические аспекты декларативных транзакций и преимуществ их применеия, а потому настоятельно рекомендуую ее к прочтению Йуный джавистЪ .какая ж ето статья. это ведь спрингреференсе. его надо прочитать всем. с первой страницы до последней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 12:07:35 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Если в двух файлах, подтягиваемых импортом, есть бины с одинаковыми именами, то спринг не сообщит об ошибке, а молча использует то описание бина, которое встретится последним. "меня терзают смутные сомнения" (с), что вы не разобрались со спрингом... В чем именно я не разобрался? Разве то что я написал, неверно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 12:32:12 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenom, В вашем коде используется PROPAGATION_REQUIRES_NEW. Вы не могли бы привести пример, зачем PROPAGATION_REQUIRES_NEW бывает нужен? Мне никогда не встречалась необходимость его использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 12:38:33 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪВ чем именно я не разобрался? Разве то что я написал, неверно?Вы с чего взяли, что это ошибка или проблема? 1) Случай высосан из пальца. Именя бинов в большинстве случаев делают соответствуютщими имени класса, тут хрен ошибешься 2) Если даже такое и произошло, это очень скоро даст о себе знать ClassCastException и свалившимися тестами. Это вам не проблемы с многопоточностью, которые хрен выловишь, это элементарнейшая и простейшая ошибка, которая исправляется за минуту. 3) Эта фича полезна при тестировании и при развертывании приложения в разных окружениях. Вот у меня дефолтная конфигурация для WebSphere, а вот у меня импорт, который заменяет JNDI ресурсы на локальные, а вот у меня импорт, который позволит работать на WebLogic - например, подменяет TransactionManager. Так что никакого криминала в этом "недостатке" нет, не выдумывайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2011, 12:39:50 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37577269&tid=2132896]: |
0ms |
get settings: |
10ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
57ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
111ms |
get tp. blocked users: |
3ms |
| others: | 338ms |
| total: | 580ms |

| 0 / 0 |
