Подробное руководство по работе с Java Spring для чайников
Spring — это простая в использовании среда Java MVC с открытым исходным кодом, обеспечивающая всестороннюю поддержку для простой и быстрой разработки приложений Java.
Spring — это облегченный фреймворк, который можно рассматривать как фреймворк фреймворков, поскольку он предлагает поддержку различных фреймворков, таких как Hibernate, Struts, Tapestry, JSF и т. д.
Особенности Spring Framework
Вот некоторые наиболее важные особенности Spring Framework:
Краткая история
Вот важные ориентиры из истории:
Spring Framework Architecture
Spring Framework предоставляет 20 модулей, которые можно использовать в зависимости от требований приложения.
Core и Bean обеспечивают фундаментальную часть платформы, включая IoC и DI.
Основной контейнер
Базовый контейнер дополнительно разделен на подкомпоненты, такие как модули Core, Beans, Context и Expression Language.
Давайте рассмотрим каждую из этих моделей в деталях:
Spring Core:
Основной модуль обеспечивает все основные компоненты каркаса пружины. Включает функции IoC (Inversion of Control) и Inpension Injection.
Модуль предлагает BeanFactory, которая представляет собой сложную реализацию фабричного шаблона.
Context
Модуль Context основан на прочной основе, предоставляемой модулями Core и Beans, и является средой, которая помогает вам получить доступ к любым объектам, определенным и настроенным.
Языки весеннего выражения (SpEL):
Этот модуль предлагает язык выражений для изменения и запроса графов объектов во время выполнения.
Доступ к данным и интеграция:
Уровень доступа к данным и интеграции состоит из модулей JDBC, ORM, JDBC, OXM, JMS и Transaction.
Web: в этом модуле используются слушатели сервлетов и контекст веб-ориентированного приложения. Он также предлагает функцию веб-ориентированной интеграции и функциональность для загрузки файлов из нескольких частей.
Веб-сервлет: Этот модуль хранит реализацию на основе MVC для веб-приложений.
Web-Socket: модуль предлагает основанную на WebSocket и двустороннюю связь между клиентом и сервером в веб-приложениях.
Web-портлет: этот модуль также называется Spring-MVC-Portlet module. Он предлагает портлеты на основе Spring и копирует все функциональные возможности модуля Web-сервлетов.
AOP: язык AOP является полезным инструментом, который позволяет разработчикам добавлять корпоративные функциональные возможности в приложение.
Инструментарий: Этот модуль предлагает инструментарий класса и реализации загрузчика. Используется для конкретных серверов приложений.
Тест: Этот модуль поддерживает тестирование компонентов Spring с помощью инструментов TestNG или JUnit. Он предлагает последовательную загрузку Spring ApplicationContexts и кэширование этих контекстов.
Spring — MVC Framework
Spring Web MVC Framework предлагает архитектуру модель-представление-контроллер и предлагает компоненты, которые помогают вам быть гибкими и слабо связанными веб-приложениями.
Шаблон MVC позволяет разделять различные аспекты приложения, предлагая слабую связь между этими элементами. Spring MVC также помогает вам создавать гибкие и слабо связанные веб-приложения.
Дизайн MVC также позволяет разделить бизнес-логику, логику представления и логику навигации. Он также предлагает элегантное решение для использования MVC в Spring Framework с помощью DispatcherServlet.
Как работает MVC?
Аспектно-ориентированное программирование
Аспектно-ориентированное программирование позволяет глобальным свойствам программы решать, как она компилируется в исполняемую программу.
Ключевой единицей модульности является аспект, а не класс. Аспектно-ориентированное программирование разбивает логику программы на различные части, известные как проблемы.
Межотраслевая проблема может затронуть все приложение и сосредоточена в одном месте в коде, таком как безопасность транзакций, управление, ведение журналов, аутентификация и т. д.
Его также можно рассматривать как динамический шаблон оформления декоратора. Этот шаблон также предлагает дополнительное поведение, которое будет добавлено к существующему классу, оборачивая исходный класс и дублируя его интерфейс и удаляя исходный.
Основные концепции АОП
В Аспектно-ориентированном программировании есть семь основных концепций.
Давайте обсудим их подробно:
Установка Java Spring
Вот пошаговая информация по установке Java Spring на ваш компьютер:
Шаг 1) Зайдите на сайт www.eclipse.org.
Шаг 2) Загрузите установщик Eclipse Neon и установите его в своей системе Windows.
Шаг 3) Нажмите кнопку «Загрузить 64-разрядную версию».
Шаг 4) Перейдите в Eclipse IDE для разработчиков Java и нажмите на ссылку «64-bit».
Шаг 5) Нажмите на ссылку «Windows 64-bit».
Шаг 6) Нажмите на кнопку «Загрузить», чтобы загрузить ZIP-файл.
Шаг 7) Распакуйте zip-файл для загрузки в определенную папку.
Шаг 8) Нажмите кнопку «Обзор», чтобы выбрать каталог рабочей области.
Шаг 9) Нажмите «Выбрать папку», чтобы выбрать папку.
Процесс будет отображаться, как показано на следующем экране.
Шаг 10) Открытие клиента Eclipse Marketplace.
Шаг 11) Поиск и установка плагина Spring.
Шаг 12) Подтвердите выбранные функции и нажмите кнопку «Подтвердить».
Шаг 13) Принятие условий и установка программного обеспечения.
Появится экран приветствия с ходом установки программного обеспечения.
Шаг 14) Нажмите кнопку «Перезагрузить сейчас», чтобы перезапустить Eclipse IDE и применить изменения.
Будет отображен следующий экран:
Преимущества Spring Framework
Недостатки Spring Framework
Вот минусы Spring Framework.
Источник
Введение в Spring Framework
Вступление
До появления Enterprise Java Beans (EJB) разработчики Java должны были использовать JavaBeans для создания веб-приложений. Хотя JavaBeans помогли в разработке компонентов пользовательского интерфейса (UI), они не смогли предоставить такие услуги, как управление транзакциями и безопасность, которые были необходимы для разработки надежных и безопасных корпоративных приложений. Появление EJB рассматривалось как решение этой проблемы. EJB расширяет компоненты Java, такие как веб-компоненты и корпоративные компоненты, и предоставляет сервисы, которые помогают в разработке корпоративных приложений. Однако разработка корпоративного приложения с EJB была непростой задачей, так как разработчику нужно было выполнять различные задачи, такие как создание интерфейсов Home и Remote и реализация методов обратного вызова жизненного цикла, которые приводят к сложности предоставления кода для EJB. Из-за этого усложнения разработчики начали ищу более простой способ разработки корпоративных приложений.
Платформа Spring появилась как решение всех этих сложностей. В этой платформе используются различные новые методы, такие как Аспектно-ориентированное программирование (AOP), Простой старый Java-объект (POJO) и внедрение зависимостей (DI), для разработки корпоративных приложений, тем самым удаляя Сложности, возникающие при разработке корпоративных приложений с использованием EJB, Spring — это легковесная инфраструктура с открытым исходным кодом, которая позволяет разработчикам Java EE 7 создавать простые, надежные и масштабируемые корпоративные приложения. Эта структура в основном ориентирована на предоставление различных способов помочь вам управлять вашими бизнес-объектами. Это значительно облегчило разработку веб-приложений по сравнению с классическими средами Java и интерфейсами прикладного программирования (API), такими как подключение к базе данных Java (JDBC), страницы JavaServer Pages (JSP) и сервлет Java.
Среда Spring может рассматриваться как набор подструктур, также называемых слоями, таких как Spring AOP. Spring Object-Relational Mapping (Spring ORM). Spring Web Flow и Spring Web MVC. Вы можете использовать любой из этих модулей отдельно при создании веб-приложения. Модули также могут быть сгруппированы для обеспечения лучшей функциональности в веб-приложении.
Особенности Spring Framework
Функции Spring Framework, такие как IoC, AOP и управление транзакциями, делают его уникальным среди списка платформ. Некоторые из наиболее важных особенностей среды Spring:
Эволюция Spring Framework
Spring Framework был впервые выпущен в 2004 году. После этого произошла значительная серьезная ревизия, например, Spring 2.0 предоставил пространства имен XML и поддержку AspectJ, Spring 2.5 предоставляет конфигурацию на основе аннотаций, Spring 3.0 предоставил модель @Configuration на основе Java. Последний выпуск весеннего фреймворка — 4.0. он выпущен с поддержкой технологий Java 8 и Java EE 7. Хотя вы все еще можете использовать Spring с более старой версией Java, минимальное требование ограничено Java SE 6. Spring 4.0 также поддерживает технологии Java EE 7, такие как служба сообщений Java (JMS) 2.0, API персистентности Java (JPA) 2.1, Проверка бина 1.1, сервлет 3.1 и JCache.
Spring Framework Архитектура
Каркас Spring состоит из семи модулей, которые показаны на рисунке выше. К этим модулям относятся Spring Core, Spring AOP, Spring Web MVC, Spring DAO, Spring ORM, Spring Spring и Spring Web flow. Эти модули предоставляют разные платформы для разработки различных корпоративных приложений; например, вы можете использовать модуль Spring Web MVC для разработки приложений на основе MVC.
Spring Framework Modules
Жизненным циклом Spring Web Flow можно управлять автоматически
Источник
Руководство по Spring. Введение.
Недавно мне пришла мысль, для закрепления своих знаний и, чтобы сделать свой маленький вклад в развитие IT, сделать небольшую серию руководств по различным технологиям.
Начать я решил с технологии Spring Framework.
Для кого
Это руководство предназначено для Java разработчиков, которые хотят детально понять Spring Framework, его архитектуру и конкретное применение.
Необходимые знания
Для того, чтобы Вы могли понимать вещи, которые описаны в этом руководстве, Вам необходимо хорошее понимание Java Core и опыт работы с Intellij Idea.
Введение
Spring один из самых популярных фреймворков для J2EE. Разработчики по всему миру используют Spring для создания надёжных и качественных приложений. Он был разработан в Июне 2003 года Родом Джонсоном.
С помощью Spring можно разработать любое Java приложение.
Внедрение зависимостей (Dependency Injection)
Невозможно понять, что такое Spring без понимания термина Dependency Injection (DI) – один из видов инверсии управления (Inversion of Control – IoC).
При написании действительно крупных и сложных проектов разработчики сталкиваются с необходимостью делать классы приложения как можно более независимыми друг от друга для возможности повторного использования и юнит-тестирования. Именно DI устанавливает связи между этими классами, при этом сохраняя их независимость друг от друга.
Так что же DI такое?
Это ситуация, когда мы внедряем элемент одного класса в другой (конкретные примеры мы рассмотрим позже). На практике DI осуществляется путём передачи параметров конструктора или с помощью setter-ов.
Другим ключевым компонентом Spring является
Аспекто-ориентированное программирование (Aspect oriented programming – AOP)
Это функции, которые охватывают несколько узлов приложения, называются cross-cutting concerns и эти cross-cutting concerns отделены от непосредственной бизнес-логики приложения.
Примечание: придётся немного потерпеть и почитать пока непонятные термины, но позже, на практике, всё станет существенно яснее.
В ООП ключевой единицей является класс, в то время, как в АОП ключевым элементом является аспект. DI помогает разделить классы приложения на отдельные модули, и АОП – помогает отделить cross-cutting concerns от объектов на которые они влияют. Более подробно АОП будет рассмотрено далее. Крайней вещью, которая будет рассмотрена в этом руководстве будет непосредственно Архитектура Spring Framework. На данный момент Spring разделён на некоторое количество отдельных модулей, что позволяет Вам самим решать, какие из них использовать в Вашем приложении.
Основной контейнер (Core Container) включает в себя Beans, Core, Context и SpEL (expression language).
Beans отвечает за BeanFactory которая является сложной реализацией паттерна Фабрика (GoF).
Модуль Core обеспечивает ключевые части фреймворка, включая свойства IoC и DI.
Context построен на основе Beans и Core и позволяет получить доступ к любому объекту, который определён в настройках. Ключевым элементом модуля Context является интерфейс ApplicationContext.
Модуль SpEL обеспечивает мощный язык выражений для манипулирования объектами во время исполнения.
Контейнер Data Access/Integration состоит из JDBC, ORM, OXM, JMS и модуля Transatcions.
JDBC обеспечивает абстрактный слой JDBC и избавляет разработчика от необходимости вручную прописывать монотонный код, связанный с соединением с БД.
ORM обеспечивает интеграцию с такими популярными ORM, как Hibernate, JDO, JPA и т.д.
Модуль OXM отвечает за связь Объект/XML – XMLBeans, JAXB и т.д.
Модуль JMS (Java Messaging Service) отвечает за создание, передачу и получение сообщений.
Transactions поддерживает управление транзакциями для классов, которые реализуют определённые методы.
Этот слой состоит из Web, Web-MVC, Web-Socket, Web-Portlet
Модуль Web обеспечивает такие функции, как загрузка файлов и т.д.
Web-MVC содержит реализацию Spring MVC для веб-приложений.
Web-Socket обеспечивает поддержку связи между клиентом и сервером, используя Web-Socket-ы в веб-приложениях.
Web-Portlet обеспечивает реализацию MVC в среде портлетов.
Прочее
Spring также включает в себя ряд других важных модулей, таких как AOP, Aspects, Instrumentation, Messaging и Test
AOP реализует аспекто-ориентированное программирование и позволяет использовать весь арсенал возможностей АОП.
Модуль Aspects обеспечивает интеграцию с AspectJ, которая также является мощным фреймворком АОП.
Instrumentation отвечает за поддержку class instrumentation и class loader, которые используются в серверных приложениях.
Модуль Messaging обеспечивает поддержку STOMP.
И наконец, модуль Test обеспечивает тестирование с использованием TestNG или JUnit Framework.
На этом я завершаю вводную часть нашего руководства по Spring. В следующей части рассмотрим как создать простое Spring приложение с помощью IDE Intellij Idea.
Источник