Разработка веб-приложений на Spring. Часть 3 (Реализация)
Комментариев (8) / J2EE, Java, Spring, ФреймворкиРазобравшись со всеми навалившимися делами и задачами, спешу опубликовать 3-ю завершающую статью из серии “Разработка веб-приложений на Spring”, которая полностью посвящается непосредственно реализации поставленной задачи в предыдущих статьях: Разработка веб-приложений на Spring. Часть 1 (Проектирование), Разработка веб-приложений на Spring. Часть 1 (Конфигурирование).
В этой статье нам предстоит сделать:
- Сервис и DAO для работы с данными
- Контроллер обработки формы
- Валидатор формы
- JSP страницу
Одним словом - ерунда осталась
Продолжить ‘Разработка веб-приложений на Spring. Часть 3 (Реализация)’
Разработка веб-приложений на Spring. Часть 2 (Конфигурация)
Комментариев (7) / J2EE, Java, Spring, ФреймворкиВ предыдущей статье мы занимались проектированием будущего приложения на Spring. Определили его цели, структуру, а также рассмотрели основные компоненты. В качестве примера используем всё тот же AllOfRss.com.
В данной статье я рассмотрю конфигурацию нашего приложения. В процессе будут созданы все необходимые конфигурационные файлы для его полноценного функционирования.
Для начала откроем Eclipse и создадим новый проект (File->New->Web Project), также рекомендую установить плагин для более комфортной работы с фреймворком Spring - Spring IDE Plugin. В процессе создания проекта, Eclipse попросит указать название вашей “Web root folder” (по умолчанию стоит - WebRoot), я обычно указываю - web, а также J2EE Specification Level, отметьте - Java EE 5.0 (если, конечно, вы используете Java 5). Остальное пусть будет без изменений.
Веб дескриптор
Как и в любом другом веб-приложении на Java всё начинается с конфигурации web.xml (web(WebRoot)/WEB-INF/web.xml).
Для начала установим путь к осноному конфигу Spring.
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/allofrss-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Сравнительно с другими веб-приложениям на Java, приложение на Spring не отличается особой оригинальностью поскольку здесь тоже всё работает через сервлеты, правда сервлет здесь будет всего один. DispatcherServlet главный сервлет в приложении на Spring. Он выполняет роль “гейтвея” входящих запросов, перенаправляя вызовы “внутрь” системы (в науке это называется паттерном Front Controller).
Продолжить ‘Разработка веб-приложений на Spring. Часть 2 (Конфигурация)’
Разработка веб-приложений на Spring. Часть 1 (Проектирование)
Комментариев (3) / J2EE, Java, Spring, Архитектура, ФреймворкиВ предыдущей статье я проводил обзор фреймворка Spring с целью ознакомить читателей с его общим устройством.
В данной статье я бы хотел перейти к планированию будущего приложения на Spring. Определить его цели, структуру и основные компоненты.
Итак, представим, что основная цель - это на протяжении всей серии статей получить базовые знания и представление необходимые для конструирования и разработки веб-приложений на Spring. В качестве учебного примера возьмём страницу инвайтов для моего проекта AllOfRSS.com. Задача: создать страницу, где пользователи могут оставлять свои e-mail для получения в будущем приглашений на тестирование проекта, а также страницу о проекте.
Я специально не привожу в качестве примера сложных архитектурных решений, алгоритмов и функциональных решений, так-как честно считаю, что данного примера достаточно для формирования общего представления и знаний для того, чтобы начать пробовать использовать Spring самостоятельно. Главное дождаться и прочитать остальные статьи из серии.. ![]()
Продолжить ‘Разработка веб-приложений на Spring. Часть 1 (Проектирование)’
Эта статья является вводной частью к серии статей о создании веб-приложения с использованием Java фреймворка Spring. Тем, кто уже знаком с этим фреймворком статья будет мало полезной, в основном это для тех, кто ничего не знает о Spring или же только слышал и собирался в будущем попробовать.
Spring - это фреймворк объединяющий в себе достаточно много полезной функциональности: управление транзакциями, удалённый доступ к логике приложения используя RMI или веб-сервисы, множество возможностей для хранения ваших данных в БД, полнофункциональный MVC-фреймворк, прозрачную интеграцию AOP в приложении, интеграцию с другими известными фреймворками. Основным преимуществом фреймворка является компонентная архитектура, которая позволяет выборочно использовать любой из компонентов, в тоже время предоставляя связанный фреймворк для разработки J2EE приложений.
Архитектура фреймворка выглядит так:

Каждый из этих компонентов может использоваться независимо или же в связке с другими. Ниже приведено общее описание функциональности каждого из них:
- IoC контейнер. Основная часть фреймворка обеспечивающая базовую функциональность.
- Spring Context. Spring контекст - это конфиогурационный файл предоставляющий контекстную информацию приложения, такую как: описание базнес-объектов в приложении, JNDI русурсы, EJB, e-mail, интернационализацию, валидацию.
- Spring AOP. Данный модуль интегрирует аспектно-ориентированное программирование непосредственно в фреймворк, используя его конфигурационные возможности. В результате, вы можете применить AOP к любому управляемому фреймворком объекту вашего приложения. Spring AOP предоставляет поддержку управления транзакциями для объектов Spring-приложения.
- Spring DAO. Предоставляет абстрактный слой для поддержки DAO. Также, содержит в себе полноценную иерархию эксепшенов для управления ошибками, возникающими при работе с различными базами данных.
- Spring ORM. Включает в себя набор различных фреймворков, для обеспечения поддержки ORM (Object Relational Mapping) в приложении, а именно: JDO, интеграцию Hibernate и iBatis.
- Spring Web Module. Предоставляет контекс для web-based приложений. Поддерживает интеграцию с Struts.
- Spring MVC Framework. Полноценная реализация MVC паттерна для разработки веб-приложений.
Из личного опыта могу сказать, что использовал Spring в 3-х крупных проектах. Негативных отзывов нет, есть только положительные. Благодаря Inversion of Control в приложение можно подключить любой другой фреймворк или билиотеку без особого труда. Конфигурируется всё очень просто, отличная поддержка транзакций благодаря модулю AOP (Spring сам заботится о целостности данных, автоматически выполняя commit и rollback, основываясь на эксепшенах). Простая и удобная реализация MVC.
Хорошие примеры использования Spring: FeedBurner, DZone, LinkedIn.