Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Spring |
Автор: Samotnik 8.5.2008, 20:10 | ||||||||||||||||
Не давно начал изучать новый (для меня) framework под названием Spring. Зайдя на гугл, приятно удивился, информации по данной теме очень много, главный источник, это http://springframework.org/. Но к сожалению маленького примерчика с обьяснениями я так и не нашел. Вот решил сделать сам что-то (естественно опираясь на литературу из сети, в основонм от http://www.developersbook.com/spring/spring-tutorials/spring-tutorials.php) ИТАК. Что же такое Spring ? Spring это легковесный opensource J2EE Framework, разработка которого началась в феврале 2003 года. Основой послужил программный код, опубликованный в книге Expert One-on-One Design and Development (Автор Род Джонсон, 2002 г.). Причем основные идеи возникли еще в 2000 году и являлись отражением опыта успешной разработки нескольких коммерческих проектов. Сейчас Spring это достаточно популярный opensource проект, охватывающий многие аспекты как J2EE, так и Java разработок. В основе Spring лежит 7 составляющих (см. рисунок ![]() http://imageshack.us http://g.imageshack.us/g.php?h=59&i=fig01fj9.gif 1)The core container: Ядро, это основа работы всего фрэймворка. В нем содержится весь основной функционал, принципы и философия Spring. В нем основным компонентом является BeanFactory. BeanFactory применяет Inversion of Control (IOC) pattern для разьединения конфигурации приложения. Т.е. этот паттерн помогает вам не создавать ваши обьекты, а обьявлять как они должны быть созданны. Все компаненты и сервисы связываются не на прямую, а через конфигурационный файл. 2) Spring context module: Это конфигурационный файл, который предоставляет необходимую информацию Спрингу. Spring context включает различные сервисы, такие как jndi, e-mail, EJB, интернационализацию, валидацию, и т.д. Также включает поддержку интеграции с различными другими фрэймворками (velocity, .... ) 3) Spring AOP module: Spring AOP позволяет расширять программные компоненты, с дополнительными способностями, через свою собственную конфигурацию. Вобщем, спринг, может управлять любым AOP обьктом. С помощью Spring AOP можно неявно управлять транзакциями в своем приложении без доп компонентов. 4) Spring DAO module: Тут все из названия понятно. Поддержка JDBC, DAO ![]() 5) Spring ORM module: Интеграция с Hibernate, JDO, iBATIS. И вообще, поддержка всех ORM фрэймворков. 6)Spring Web module: тут тоже все понятно, полная интеграция и взаимодействие с WEB фреймворками (Struts к примеру). Простое использование спринга в WEB приложениях (J2EE имеется в виду ![]() 7)Spring MVC framework module: Поддержка и использование знаментитого паттерна M-V-C Model - View - Controller. Разграничение обязанностей между 3-я компонентами. Это было краткое описание, основных модулей работы Spring Framework. О них можно очень подробно прочитать на оффициальном сайте. http://springframework.org/ Все же, цель моей статьи: написать маленькое и понятное приложение на спринге. С обьяснениями. Поехали ![]() 1. Создадим 2 простых интерфейса, в котором будет обьявленно по одному методу hello и bye и для удобства положим их в пакет service ByeService
HelloService
Рас у нас есть интерфесы, значит все методы там обьявленные нужно заимплементить. положим эти классы в пакет serviceImpl ByeServiceImpl
HelloServiceImpl
ОГ. Теперь нужен бин (java класс) в котором обьявим геттеры и сеттеры, а также метод который будет отвечать, за то, что будет вызываться, либо Hello либо Bye. И положим его в пакет bean HelloBean
Это тоже сделанно. Далее. Далее самое интересное ![]() hello.xml
Необходим класс Name который будет устанавливать имена и получать Name.java
Ну а вот и сам класс, который является сердцем спринга ![]()
Вывод: Spring отличный фреймворк, позволяет писать понятные и простые приложения (как J2EE так и J2SE). Чем он хорош ? В данном примере, хорош тем, что создание обьектов не привязанно к самому классу, а происходит в самом фреймворке. Через ApplicationContext происходят все инъекции, и все очень замечательно конфигурируется... Вот, надеюсь кому - то этот пример с пояснениями поможет ![]() http://www.developersbook.com/spring/spring-tutorials/spring-tutorials-2.php |
Автор: Kangaroo 8.5.2008, 20:24 |
Samotnik, молодец! Что-то тебя последнее время на статьи потянуло, хорошее начинание ![]() А по сабжу стоит добавить, что приведенный пример показывает только ядро Спринга - IOC/Dependency Injection container для JavaSE. Основное же применения Спринга - это веб приложения, он отлично интегрируется со многими Java EE технологиями. |
Автор: Shaggie 8.5.2008, 22:32 | ||
Samotnik, рискуешь заполучить первый джавный плюс, так держать! ![]() Однако вот это смутило:
Как же так? Вот http://static.springframework.org/docs/Spring-MVC-step-by-step/ на подробное описание создания веб-приложения в полном MVC, настоятельно рекомендую к ознакомлению - даёт хорошую базу и мощный пинок к дальнейшему самостоятельному изучению. |
Автор: v2v 8.5.2008, 23:02 |
Shaggie, не внимательно читал пример. Самотник рассматривает не только Spring Web MVC , а Spring в целом. |
Автор: Kangaroo 8.5.2008, 23:03 | ||
Да... через эту ссылку я тоже прошел и всех учеников послал туда ![]() Документация Спринга очень хорошая, ее можно на офсайте найти. |
Автор: Samotnik 8.5.2008, 23:05 |
Shaggie, т.е. по твоему это простой пример ? ![]() К тому же статья выложена в разделе Java:общие вопросы а не в J2EE И попытался этим примером показать работу спринга ВОБЩЕМ.... ![]() |
Автор: Shaggie 9.5.2008, 22:00 | ||||
Да. Есть возражения?
Это, я так понимаю, краткое перечисление компонент в начале статьи? Потому что пример демонстрирует исключительно IoC, - согласен, очень доступно, - но на "Spring в целом" не тянет.
Заодно присоединюсь к мнению Kangaroo о корректности выкладывания статьи про Spring в общих вопросах. Признаться, никогда не слышал о его использовании не в энтерпрайз приложениях, в основном под них всё заточено. Прошу прощения, если кого вдруг обижу или неприятно удивлю, но мне настолько простого примера явно маловато. Возможности Spring'а в нём практически неощутимы на вкус, нет внятного стимула к изучению. Мир! Всем мир! Я просто подивился цитате "это оффициальный сайт. Но к сожалению маленького примерчика с обьяснениями я так и не нашел", и выложил тот самый примерчик, так сказать, обелил официальный сайт создателей Spring. С большим нетерпением жду от Samotnik дальнейших статей. |
Автор: Samotnik 9.5.2008, 23:30 |
Shaggie, што ты хочеш ?? Не нравицца не читай! ![]() [censored 2] , выложи сам получше чего нибудь.... Вот у нас всегда такая система... все сидят тихо, никто ничего не говорит, КАК только что-то новенькое появится, люди сразу от куда не возьмись появляются и начинают критиковать из-под тяжка, при том, что сами нифига конкретного не предлагают ! |
Автор: Kangaroo 9.5.2008, 23:40 |
Samotnik, зря ты так. Конструктивная критика только помогает. А так - в бан. И правильно. Плохое настроение не является оправданием наезда на людей. |
Автор: Samotnik 9.5.2008, 23:44 |
какое настроение ?? ты видел что он мне написал ? Это низко и подло, выдезти из-за угла, написать сообщение в котором унизил все мои труды. и обратно залезть в свою конуру, при том, что сам ничего не сказал по делу! Я не навижу таких недалеких людей ! Разве это по мужски ? |
Автор: Maksym 10.5.2008, 00:00 |
Samotnik Это форум, в котором общаются на профессиональные тематики. Молодец, что написал статью, я с интересом с ней ознакомился. Очень плохо, что перешел на личности и нецензурную брань какой бы ни была твоя причина, это крайне непрофессоинально, совершенно не к месту и никому эти эмоции здесь не интересны, для эмоций есть флеймовые разделы форума. Особенно если учесть, что замечания Shaggie были во многом по делу и должны были стать толчком к развитию статьи (кстати, по-моему тема тоже тема для Java2EE раздела, была.. до последних высказываний..) Твоя реакция совершенно неадекватна и не соответствует духу форума. |
Автор: Samotnik 10.5.2008, 00:04 |
Maksym, Тебе спасибо, за то, что оценил, что я делал ![]() Как ты думаеш, Вот это вот адекватно ? Это профессионально ? Это соответсвует данному разделу ? ![]() |
Автор: Maksym 10.5.2008, 00:07 |
Samotnik Более чем, что в этом странного. Мне тоже будет интересно почитать если напишешь. Особенно про Spring MVC, поскольку много работаю с веб. Неадекватен мат, неадекватны эмоции в профессиональном споре. |
Автор: Samotnik 10.5.2008, 00:13 |
Так в том-то и дело, Макс, спора ведь нету ![]() ![]() Но ведь согласись, со стороны Shaggie, были только шишки в мою сторону, ничего пазитивного, он тока говорил о том, что я не внимателен, не то пишу, не так думаю, не так сижу. А сам что сделал? Он тока облил меня грязью, сам ничего конкретного и путного не предложил. Ведь можно было в другой форме мне сказать о чем нибудь, мы бы с ним обсудили, я бы что-нибудь поправил ![]() |
Автор: Maksym 10.5.2008, 00:25 |
Samotnik Это уже офтоп. Просто возьми на заметку то что я написал. По теме. Всем интересующимся Spring советую начинать знакомстово с изучения паттерна http://en.wikipedia.org/wiki/Inversion_of_control. |
Автор: Samotnik 10.5.2008, 00:31 |
окей, я считаю, что шэгги поступил не красиво! можно было о всех недачетах сказать в более мягкой форме, потому что критиков, которые тупо грязью поливают, очень много, а вот людей с кем можно поговорить и обсудить - очень мало ![]() |
Автор: Shaggie 10.5.2008, 21:36 |
Samotnikу я отвечу в ПМ. Модераторам: извините за неумышленное раздувание пожара, я такой реакции совершенно не ожидал ![]() |
Автор: javastic 13.5.2008, 10:29 | ||
|