|
|
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAСпринг это конструктор. Под него можно подложить EhCache или Terracotta.То есть, я немного перефразирую: Spring не может поднять кластер, но у него есть классы-хелперы, которые позволяют быстро интегрироваться с уже существующим кластером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:44:01 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomУ меня начинает закрадываться ощущение, что вы меня троллите. Правильная метафора будет такова:я пытаюсь объяснить. svenom1) Tomcat (спринг тут абсолютно ни при чем) - это строительная площадка, на которой валяется молоток и пара гвоздей. Томкат - запускалка для Спринг. Разговор шел и идет о Спринге. svenom2) AppServer - это строительная площадка, на которую уже пригнали кучу оборудования и интсрументов. Если хотите - используете то, что уже дано для построения своего проекта. Если хотите - точно так же идете в магазин и покупаете нужные вам инструменты. То есть если в АппСервере изначально есть молоток, то это вовсе не значит, что вы обязаны его использовать. Хотите используйте, хотите купите другой. А потому фраза VoDAгде все запаяно и закрытонапрочь лишена смысла.вы пробовали подменить встроенную в сервер библиотеку на более новую версию? Тот же Hibernate апгрейднуть? или встроенную реализацию JSF заменить на более подходящую? Если либа вложена на уровне сервера, то попытка использовать другую версию может привоить к феерическим багам ввиду наличия в класспасе нескольких версий одних и тех же классов. Так что желание сменить версию встроенных систем может быть очень дорогим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:47:01 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСмелое заявление.Берем типичное JavaEE приложение. Что инстанцируется в обход Spring: 1) Вся инфраструктура контейнера. 2) Все зависимости используемых библиотек. Примеры: slf4j, xml-либы, javassist, "тысячи их". 3) Все ентити 4) Все локальные объекты 5) В некоторых случаях ... контекст самого Спринга Что инстанцируется спрингом: 1) Только то, что определено контексто, а именно всякие сервисы, контроллеры и иже с ними (причем достаточно большая их часть являются синглтонами). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:49:09 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomА потому выбор Tomcat+Spring или JavaEE сервер - бессмысленен по сути. На самом деле выбор идет между Tomcat или JavaEE сервер, а потом ищут вопрос на ответ "как реализовывать DI?" - через EJB или через Spring, или через что-нить еще (если DI вообще нужен в проекта, разумеется)Чаще выбор технологии - EJB и JavaEE stack или Spring как клея и огромного количества фреймвороков, которые через него клеятся к приложению. А на чем запускать Spring на Tomcat или в силу каких либо особенностей на WebSphere - дело десятое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:49:35 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomjustforsqlruВстроенная поддержка транзакций СекуритиК сожалению, вы забыли главное - DI. в 2-ке ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:50:44 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAвы пробовали подменить встроенную в сервер библиотеку на более новую версию? Тот же Hibernate апгрейднуть? или встроенную реализацию JSF заменить на более подходящую? Если либа вложена на уровне сервера, то попытка использовать другую версию может привоить к феерическим багам ввиду наличия в класспасе нескольких версий одних и тех же классов.Конечно пробовал. У нас в одном проекте была седьмая WebSphere, в которой веб-сервисы имплементированы на основе Axis2. А нам надо было подсунуть другую версию Axis2. Делается очень легко: 1) Кладем нашу версию Axis2 в EAR (привет варникам! ) 2) Деплоим приложение 3) Изменяем порядок делегирования класслоадера EAR-ника 4) PROFIT - движком веб-сервиса стала наша либа. У любых современных АппСерверов есть такая возможность. Очередная попытка обощить либо свое незнание, либо негативный опыт на все ситуации. Это плохая привычка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:52:54 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomВы же вообще ушли от обсждения "сервер приложений vs контейнер сервлетов", в сторону ...Как автор этой части обсуждения предлагаю вернуться к изначальной теме "Spring VS JavaEE stack". Tomcat появился как пример дополнительной возможности, которую дает Spring. Самостоятельно он не расспатривается. svenomПо-моему вы не поняли, о чем идет речь. VoDA утверждает, что АппСервер это некая жестка предопределенная инфраструктура, которая вносит определенные ограничения на разрабатываемое ПО. Типа "использовать только реализацию EJB, которая идет в комлпекте". Но дело в том, что это глупость, так как сервер приложений вообще никак не ограничивает разработчика. Не понравилась реализация EJB из коробки - ну ок, положи свою, которая тебе нравиться.Сколько раз вы подменяли серверную реализацию контейнера-EJB на свою? сколько времени потребовалось на поиск и исправление всех багов от этой замены? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:54:01 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomjustforsqlruНу тогда поясните нахрена юзать аппсервер при условии что EJB мы не юзаем ?Вы знаете, какие задачи решает EJB и зачем он нужен?Можно уточнить какие задачи решает EJB и НЕ РЕШАЕТ spriong beans? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:54:43 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAЧаще выбор технологии - EJB и JavaEE stack или Spring как клея и огромного количества фреймвороков, которые через него клеятся к приложению.Ничего подобного. Контейнер - это инфраструктура, Spring/EJB - это реализация DI. Поэтому выбор идет так: 1) Определяемся с контейнером 2) Определяемся с реализацией DI - Spring или EJB. Я повторюсь - большинство проектов, которые я видел крутящимися на сфере, имели в качетсве DI Spring, так как он в большом количестве случаев оказывается гибче и понятнее, чем EJB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:55:26 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAКак автор этой части обсуждения предлагаю вернуться к изначальной теме "Spring VS JavaEE stack".Проблема в том, что "Spring vs JavaEE stack" не имеет ровным счетом никакого смысла. Сравнивать можно "Spring vs EJB". VoDAСколько раз вы подменяли серверную реализацию контейнера-EJB на свою? сколько времени потребовалось на поиск и исправление всех багов от этой замены?Выше про делегирование класслоадеров почитайте. Мне не приходилось подменять EJB. Если бы пришлось - пошел бы таким же путем. VoDAМожно уточнить какие задачи решает EJB и НЕ РЕШАЕТ spriong beans?Я где-то дал повод задать мне такой вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 16:58:18 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomМожете пояснить, в чем заключается "дополнительный секс"?в прямой работе с JPA API без декларативного управления транзакциями, без иных фишечек которые может предложить AppServer для EAR или Spring для WAR. мы помним, что это пункт про EJB 3.0 и что после появления вкусняшечек в Spring появлися EJB Lite в 3.1 svenomТо есть вы утверждаете, что именно спринг отвечает за то, что грузить, а что нет. Если какой-либо класс либы не прописан в контексте, то она, дескать, и не грузится вовсе. Мой пример как раз показывает случаи, когда есть две либы и одна грузит другую без какого-либо участия спринга.Я утверждаю что при грамотном использовании Spring - все зависимости прописываюся только в applicationContext инстанциирует. Явное глупости типа создания bean через new или попытки через new создать EJB я не рассматриваю. Так вот если Spring использован грамотно и зависимости живут только в applicationContext, то в этом случае Spring запросит у класслоадера только требуемые классы. А не требуемые для текущей конфигурации классы загружены не будут. Сокращая утверждение: Я утверждаю что при использовании Spring будут загружены только требуемые по конфигурации классы (априори считая, что Spring применяется грамотно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:03:42 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomЯ упрощу вам задачу - Hibernate требуется javassist для своей работы. Вопрос: вы в контексте спринга что-нибудь из javassist прописываете? Ну там бины какие-нибудь? (Моя версия: нет) Вопрос: javassist загружает при работе с Hibernate? (Моя версия: да) Вопрос: как же тогда объяснить такой парадокс - либы нет в спринге, но она загружается? Я люблю упрощения первый ответ - угадали ;) второй тоже угадали Дело в том, что Spring это очень умный клей. Он заранее знает что для работы Hibernate требуется одна из либ подходящих для манипуляции байт-кодом. Так вот если ни одной либы не указано явно, то Spring использует default который для Hibernate выставлен в javassist. Можно явно указать какую либу использовать. Но чтобы не загромождать конфиг и не смущать юных падаванов эта часть скрыта от непосвященных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:08:23 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAв прямой работе с JPA API без декларативного управления транзакциями, без иных фишечек которые может предложить AppServer для EAR или Spring для WAR.Окей, тут возразить нечего. Так как нам в итоге быт ьс вашим утверждением, что JPA не запустится из war без спринга? VoDAмы помним, что это пункт про EJB 3.0 и что после появления вкусняшечек в Spring появлися EJB Lite в 3.1Про какие именно "вкусняшечки вы говорите"? VoDAТак вот если Spring использован грамотно и зависимости живут только в applicationContextЯ же вам привел пример - вот у нас есть Хибер. Ему нужна либа для создания проксей, например javassist. Еще ему нужен, например, slf4j. Скажите - вы будете в контексте прописывать какие-либо классы из этих либов? Я вам намекну еще раз - зависимостями управляет Maven. Если вы где-то используете джарник, которому нужно еще 10 джарников для работы, то вы хоть прописывайте их в контексте (вот только зачем? ), хоть нет - они будут загружены. Для понимания этих вещей - я вам рекомендую создать Maven проект, запихать туда какие-нибудь известные либы/фреймворки, и посмотреть, что реально от чего зависит. Утверждение, что Spring оказывает хоть какое-то влияние на зугрзку классов - абсурд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:09:55 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomТо есть вы убеждены, что в приложении все работает через Spring, используя DI? И все сторонние либы тоже его используют? Причем тут EJB я вообще не понял - про него речи не было.Я убежден, что все кто сознательно выбирает Спринг работают через IoC - это его база. EJB для аналогии - попытка создания spring beans через new по сути такой же бред, как и попытка создать EJB компонент через new . И тот и другой компонетнты управляются контейнерами, потому получить их можно только из контекста. EJB запросив у сервера, а spring bean у Spring. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:11:38 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomVoDAСпринг это конструктор. Под него можно подложить EhCache или Terracotta.То есть, я немного перефразирую: Spring не может поднять кластер, но у него есть классы-хелперы, которые позволяют быстро интегрироваться с уже существующим кластером.еще перефразируя - Spring помогает создать кластер любой конфигурации. Для упрощения этого процесса в нем заготовлены классы-хэлперы. Конфигурация кластера JavaEE приложений довольно жестко прошита в сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:13:30 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomНичего подобного. Контейнер - это инфраструктура, Spring/EJB - это реализация DI. Поэтому выбор идет так: 1) Определяемся с контейнером 2) Определяемся с реализацией DI - Spring или EJB. Я повторюсь - большинство проектов, которые я видел крутящимися на сфере, имели в качетсве DI Spring, так как он в большом количестве случаев оказывается гибче и понятнее, чем EJB.У нас разные подходы. Начнем с того, что Spring это контейнер как минимум для spring beans, и для всей остальной инфраструктуры, которая запущена в рамках applicationContext. Потому выбор может быть и такой: 1) Определяемся с контейнером (опа- совпабо ) 2) Определяемся с реализацией JavaEE сервера если выбран JavaEE или реализацией web-container если в качестве основного контейнера выбран Spring ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:18:45 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Добрый день, VoDA! > Начнем с того, что Spring это контейнер как минимум для spring beans, и > для всей остальной инфраструктуры, которая запущена в рамках > applicationContext. Вот, кстати, плюс Spring- он может применяться на клиенте. А то вот пишем JavaEE-приложение, и управление зависимостями на клиенте- тот ещё секс- прям хоть Spring к клиенту прикручивай. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:21:40 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomПроблема в том, что "Spring vs JavaEE stack" не имеет ровным счетом никакого смысла. Сравнивать можно "Spring vs EJB".с EJB можно сравнивать только самую малую часть - Spring IoC. а с чем вы будете сравнивать Spring WebServices? а Spring Timers? а Spring MVC? тут явно не обойтись одними EJB. svenomVoDAМожно уточнить какие задачи решает EJB и НЕ РЕШАЕТ spriong beans?Я где-то дал повод задать мне такой вопрос? мне интересно - может я чего не знаю ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:22:31 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAДело в том, что Spring это очень умный клей. Он заранее знает что для работы Hibernate требуется одна из либ подходящих для манипуляции байт-кодом. Так вот если ни одной либы не указано явно, то Spring использует default который для Hibernate выставлен в javassist.Очередной абсурд. Допустим, что у нас все настройки Hiber'a по умолчанию. Вопросы вам: 1) Если я инстанцирую SessionFactory не через Spring, а руками через new, то хибернейт сможет понять, какую библиотеку использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:23:06 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomОкей, тут возразить нечего. Так как нам в итоге быт ьс вашим утверждением, что JPA не запустится из war без спринга?оно было излишне гротескным - запустится запустится, но настолько неудобно, что лучше бы этого не было ;) svenomVoDAмы помним, что это пункт про EJB 3.0 и что после появления вкусняшечек в Spring появлися EJB Lite в 3.1Про какие именно "вкусняшечки вы говорите"?возможность положить EJB и WAR и задеплоить на JavaEE сервер чтобы он это понял svenomVoDAТак вот если Spring использован грамотно и зависимости живут только в applicationContextЯ же вам привел пример - вот у нас есть Хибер. Ему нужна либа для создания проксей, например javassist. Еще ему нужен, например, slf4j. Скажите - вы будете в контексте прописывать какие-либо классы из этих либов? Hibernate - конечно пропишу. Логгеры несколько иные по природе, потому их инстанциируют напрямую без привязки к контейнеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:26:24 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomОчередной абсурд. Допустим, что у нас все настройки Hiber'a по умолчанию. Вопросы вам: 1) Если я инстанцирую SessionFactory не через Spring, а руками через new, то хибернейт сможет понять, какую библиотеку использовать?Предположу, что да. И? Основной посыл в том, что в условиях если hibernate.jar и javassist.jar лежат в WAR-нике, но в приложении не используются то они не будут загружены. При этом даже если приложение не использует JMS от сервера. Совсем не использует. Даже в этом случае подсистема JMS все равно будет загружена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:29:44 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAЯ убежден, что все кто сознательно выбирает Спринг работают через IoC - это его база.Ну да. EJB тоже IoC. Вы это к чему говорите? VoDAEJB для аналогии - попытка создания spring beans через new по сути такой же бред, как и попытка создать EJB компонент через new. И тот и другой компонетнты управляются контейнерами, потому получить их можно только из контекста. EJB запросив у сервера, а spring bean у Spring.Где и кто говорил про создание EJB через new? VoDAеще перефразируя - Spring помогает создать кластер любой конфигурации. Для упрощения этого процесса в нем заготовлены классы-хэлперы. Конфигурация кластера JavaEE приложений довольно жестко прошита в сервере.Очередная глупость. Вы мне только что привели пример - Terracota. Мы говорим не про кластеры на основе самих апп серверов, а про сторонние кластеры. Вопрос вам - если я могу настроить Терракоту через Spring, что мне помешает сделать это без него? Да, будет геморенее, тут спору нет. То есть вы путаете кластеры на основе апп серверов - которые мы создаем через конфигурацию инстансов этих серверов, и 3rd-party кластеры, которые к апп серверу вообще никакого отношения не имеют. VoDA2) Определяемся с реализацией JavaEE сервера если выбран JavaEE или реализацией web-container если в качестве основного контейнера выбран SpringSpring это не контейнер в понятиях Java контейнеров. Spring это реализация DI. Вы никак не можете это понять. VoDAа с чем вы будете сравнивать Spring WebServices? а Spring Timers? а Spring MVC? тут явно не обойтись одними EJB.Эмм, а зчем мне их с чем-то сравнивать? Это не основа спринга, а лишь вспомогательные классы. А Spring MVC и вовсе преследует иные цели, чем DI - это реализация паттерна MVC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:30:35 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAоно было излишне гротескным - запустится запустится, но настолько неудобно, что лучше бы этого не было ;)Все неудобство из-за отсутствия DI. Достаточно большая часть современных приложений использует DI, это абсолютно естественно, ибо удобно. VoDAHibernate - конечно пропишу. Логгеры несколько иные по природе, потому их инстанциируют напрямую без привязки к контейнеру.То есть вы отказыаетесь от вашего утверждения, что именно Spring определяет, какие классы/либы грузить, а какие нет? VoDAОсновной посыл в том, что в условиях если hibernate.jar и javassist.jar лежат в WAR-нике, но в приложении не используются то они не будут загружены.Ок, все верно. Их не загрузит ни Spring, ни Tomcat, ни WebSphere. VoDAПри этом даже если приложение не использует JMS от сервера. Совсем не использует. Даже в этом случае подсистема JMS все равно будет загружена.И? Какое следствие? Да, JMS скорее всего будет загружен где-то в верхних класслоадерах WebSphere, так как это часть инфраструктуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:35:59 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Уважаемый svenom как в ejb 2.1 реализуется DI ? Приведите плиз пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 17:56:13 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37573547&tid=2132896]: |
0ms |
get settings: |
15ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
57ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 359ms |
| total: | 556ms |

| 0 / 0 |
