![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| AlexCorwin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
Наверное всем уже надоели чайники, которые услышав много умных слов начинают доставать с вопросами, а что енто такое и зачем нужно
Перечитал наверное весь форум, но всё же остался ряд вопросов: Итак Frameworks: 1. JSF и Struts и Tapestry - несут в себе один и тот же смысл. Т.е. создание интерфейсной части приложения ??? 2. Hibernate - для работы с базами данных. он независим совсем от jdbc или является надстройкой ? 3. Spring - что это вообще за зверь ???? он тоже необходим для UI ??? Можно ли сращивать JSF (Struts) + Spring + Hibernate если да то в каких случаях это оправдано ??? Заранее спасибо, кто не поленится просветить... |
|||
|
||||
| tux |
|
||||||||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Попробую прояснить.
Именно. Все три фреймворка предназначены для создания клиентской части веб-приложения и реализуют паттерн "модель-вид-контроллер" (MVC). Но, заметь, делают это по-разному, причем реализации сильно отличаются. Кроме того, это не единственные фреймворки. Вот здесь - http://java-source.net/open-source/web-frameworks - из 38 штук и подозреваю, что это еще не все. Ты спросишь зачем они все нужны? Какие-то проекты - просто амбиции автора, решившего доказать, что и он может фрйемворк написать, кто-то действительно продвигает хорошую идею быстрого и удобного создания веб-приложений. Если ты только начинаешь заниматься разработкой для веб на Java, то тебе предстоит из всего разнообразия что-то выбирать. К этому вопросу мы еще вернемся.
Hibernate - это библиотека объектно-реляционного отображения (ORM). Как ты уже наверное догадываешься, Hibernate - не единственная подобная библиотека. Вот здесь их перечисляется 21 - http://java-source.net/open-source/persistence. Для чего нужен Hibernate? Для того, чтобы можно было не работать с базой данных напрямую, выполняя множество запросов и обрабатывая результаты выполнения. Вместо этого можно сохранять в базу данных и получать оттуда обыкновенные объекты Java. Hibernate при сохранении объекта определяет соответствие классов таблицам в базе данных, атрибутов класса полям в таблице и генерирует запрос, который зависит от того какая операция выполняется - выборки объекта или его сохранения. Соответствие классов и таблиц, естественно, придется Хибернейту предварительно задать. На самом деле, возможности Hibernate гораздо шире, но описать все что он умеет я здесь не смогу. Поскольку Hibernate с базами данных все-таки работает, то никак не зависеть от JDBC он ну ни как не может. Можешь считать его надстройкой. Еще одно достоинство Hibernate - он вполне неплохо сглаживает различия, существующие между различными СУБД, тоже аргумент для его использования. Думаю, ссылки на различные ресурсы по Hibernate ты и без меня в форуме найдешь, вот тебе пара ссылочек, где худо-бедно работа с Hibernate описана по-русски - http://msk.nestor.minsk.by/kg/2005/32/kg53209.html, http://www-128.ibm.com/developerworks/ru/j...nate/index.html. Резюме такое. Если делаешь достаточно крупный проект (больше Hello, World
В отличие от веб-фреймворков (Struts и иже с ним) Spring - это фреймворк приложения J2EE в целом, более того, Spring не обязательно должен использоваться в веб-приложении в отличие от Struts, который жестко привязан к веб. Опять-таки, Spring - не единственный, вот здесь похожих библиотек 8 - http://java-source.net/open-source/j2ee-frameworks. Но, Spring - это мейнстрим и замену ему сейчас можно наскрести разве что по сусекам из различных библиотек. Более того, Spring - это модно. Ну так вот, если решишь изучать Spring, то могу сразу предупредить, что это сложно и времени у тебя уйдет много (дело не в сложности самого Spring, а в сложности связанных с ним концепций), но полученные знания окупяться в будущем, дадут возможность разрабатывать приложения очень быстро.
Можно. Если ты решишь использовать в приложении ORM, то придется сращивать Spring с Hibernate поскольку собственным ORM Spring не обладает. Использовать Struts при наличии мощного и гибкого фреймворка, имеющегося в Spring мне кажется целесообразным только при переносе на Spring уже существующего приложения, использующего Struts. Ну вот, вкратце и все. |
||||||||
|
|||||||||
| Skeleton |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
А JSF + Spring + Hibernate оправдано?
|
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
С JSF не сталкивался, может быть и обладает он какими-то сказочными преимуществами в сравнении со Spring, но в это слабо верится.
|
|||
|
||||
| Skeleton |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
Spring как-то с EJB соотносится? Что в будущем будет более востребованно JSF или Spring?
|
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
В Spring есть код, несколько упрощающий работу с EJB, а в остальном он никакого отношения к EJB не имеет. Это в общем-то разные вещи. JSF - только веб-фреймворк (насколько я знаю), а Spring - целый набор библиотек, упрощающий разработку приложений, включающий в том числе и веб-фреймворк. JSF продвигает Sun, этим может быть обусловлено будущая большая востребованность. Хотя, кажется, сейчас Spring быстрее набирает популярность. |
|||
|
||||
| AlexCorwin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
tux
Спасибо огромное. кажется что-то начинает проясняться. Я думаю попробовать поиграться для начала с jsf+hibernate. А то в Spring пока страшно лезть... Можно пару примеров, для каких целей может использоваться Spring (не считая его UI модуля). Так сказать на рабоче крестьянском языке ??? |
|||
|
||||
| ALKS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 6 Всего: 11 |
Я немножко хочу добавить по-воводу Hibernate. Он не просто самый поплярный он объективно лучший. я имел дело еще с torque и еще с чем-то и убежден что лучше Hibernate в своей нише ничего сейчас нету. Но это не значит что его нужно применять везде. Нужно понимать что абстрагирование от спицифики конкретного SQL сервера, как бы хорошо оно не было сделано, не может не сказываться на производительности.
Есть круг задач когда производительность запросов к БД очень важна и тут фреймворки подобные Hibernate применять не стоит. что-то выигрываеш а что-то проигрываеш как всегда... А с фреймворками для вэб-приложений вообще полный атас... разобраться очень сложно, даже профисионалу. мы перепробовали несколько и в итоге... написали собственный... сэ ля ви... |
|||
|
||||
| Skeleton |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
На мой взгляд JSF в целом очень не плох, но имеет несколько существенных просчётов. Если я правильно понял форма в JSF может быть отправлена только методом POST и т.д....
|
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Согласен. Правда у меня тоже дело ограничилось знакомством с Torque и еще Castor. Люди шибко хвалят iBatis SQL Maps, но у меня его посмотреть пока только в планах.
Посмотри вот эту статью - http://www.javaportal.ru/java/articles/spring.html. Там как раз есть пара примеров использования. Будут вопросы, задавай. Это сообщение отредактировал(а) tux - 31.3.2006, 03:33 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |