Spring – один из самых широко используемых фреймворков Java EE. Я написал много статей по учебнику Spring, и это сводная статья, которая будет служить индексом для ознакомления со всеми из них по порядку.
Учебник Spring
Все учебники по Spring сопровождаются примерами проектов, которые можно скачать с страниц учебников.
Основные учебники по Spring
Фреймворк Spring основан на двух принципах проектирования – внедрение зависимостей и аспектно-ориентированное программирование. Пожалуйста, изучите нижеуказанные учебники, чтобы узнать о основных концепциях Spring с примерами реализации.
- Фреймворк Spring Краткий обзор эволюции фреймворка Spring, его архитектуры, основных компонентов и принципов, которые руководят разработкой этого удивительного фреймворка.
- Пример внедрения зависимостей в Java В этом сообщении рассматриваются основы внедрения зависимостей и то, как мы можем реализовать шаблон DI в простых приложениях Java. Это хорошая отправная точка для начала, а затем можно перейти к внедрению зависимостей Spring.
- Внедрение зависимостей Spring Этот учебник направлен на предоставление примера внедрения зависимостей в фреймворке Spring с использованием как аннотаций, так и XML-конфигурации. В учебнике также приведена программа тестирования JUnit для проверки реализации.
- Пример аспектно-ориентированного программирования в Spring В этом учебнике объясняются основные концепции аспектно-ориентированного программирования, такие как аспект, совет, точка вхождения, соединение, AOP-прокси и встраивание. В учебнике также рассматриваются различные типы советов с помощью простых программ.
- Профилирование методов в Spring AOP
- Spring IoC Контейнер и Пример учебника Spring Bean Этот учебник направлен на объяснение основных концепций контейнера Spring IoC и Spring Bean с помощью примерных программ. Учебник объясняет о Контейнере IoC и его основных классах, а также о различных способах создания
ApplicationContext
. В учебнике также рассматривается Spring Bean, области видимости Spring Bean, различные способы настройки Spring Bean – XML, аннотация, на основе Java на примере проекта. - Области видимости Spring Bean Области видимости Spring Bean позволяют нам иметь более детальный контроль над созданием экземпляров бинов.
- Пример автосвязывания Spring Bean Контейнер Spring IoC умеет находить бин для внедрения зависимостей через атрибут “spring autowire”. В этом учебнике объясняются различные типы автосвязывания на примере проекта.
- Жизненный цикл Spring Bean Spring Beans – самая важная часть любого приложения Spring. Контекст приложения Spring отвечает за инициализацию Spring Beans, определенных в файле конфигурации бина Spring. В этом учебнике объясняются различные способы предоставления методов пост-инициализации и предварительного уничтожения в бине Spring – интерфейсы InitializingBean/DisposableBean или атрибуты init-method/destroy-method. Фреймворк Spring также поддерживает аннотации
@PostConstruct
и@PreDestroy
для определения методов после инициализации и перед уничтожением. Эти аннотации являются частью пакетаjavax.annotation
. Вы также узнаете о интерфейсах Spring Aware, которые можно использовать для внедрения объектов API сервлетов в бин Spring. - Spring 5 Spring 5 был выпущен в конце 2017 года. Spring 5 принес огромное обновление во фреймворк Spring.
- Spring WebFlux Spring WebFlux – новый модуль, введенный в Spring 5. Spring WebFlux является первым шагом к реактивной модели программирования во фреймворке Spring.
- Spring Data JPA Spring Data JPA – это часть семьи Spring Data. Spring Data упрощает создание приложений, основанных на Spring, которые используют новые способы доступа к данным, такие как нереляционные базы данных, фреймворки сокращения масштаба, облачные сервисы, а также поддержку продвинутых реляционных баз данных.
Spring Annotations
- Spring Annotations Краткий обзор наиболее важных аннотаций в Spring Framework.
- Spring @Bean Аннотация Spring @Bean применяется к методу для указания, что он возвращает бин, который будет управляться контекстом Spring. Аннотация Spring Bean обычно объявляется в методах классов конфигурации.
- Spring @Service Аннотация Spring @Service является специализацией аннотации @Component. Аннотацию Spring Service можно применять только к классам. Она используется для обозначения класса как поставщика сервиса.
- Spring @Component Аннотация Spring Component используется для обозначения класса как компонента. Это означает, что фреймворк Spring автоматически обнаруживает эти классы для внедрения зависимостей при использовании конфигурации на основе аннотаций и сканирования classpath.
- Spring @RestController Аннотация Spring RestController – это удобная аннотация, которая сама аннотирована как @Controller и @ResponseBody. Эта аннотация применяется к классу для обозначения его как обработчика запросов.
- Spring @Controller Аннотация Spring Controller – это специализация аннотации @Component. Обычно аннотация Spring Controller используется в сочетании с аннотированными методами обработчика на основе аннотации RequestMapping.
- Spring @Repository Аннотация Spring @Repository используется для указания того, что класс предоставляет механизм для хранения, извлечения, поиска, обновления и удаления объектов.
- Spring @Configuration Аннотация Spring @Configuration является частью основного фреймворка Spring. Аннотация Spring Configuration указывает, что у класса есть методы определения @Bean. Таким образом, контейнер Spring может обрабатывать класс и создавать Spring Beans, которые можно использовать в приложении.
- Spring @Value Аннотация Spring @Value используется для присвоения переменным и аргументам метода значения по умолчанию. Мы можем читать переменные среды Spring, а также системные переменные с использованием аннотации @Value.
- Spring @PropertySource Аннотация Spring @PropertySource используется для предоставления файлов свойств для среды Spring. Эта аннотация используется с классами @Configuration.
- Spring @PostConstruct и @PreDestroy Когда мы аннотируем метод в Spring Bean аннотацией @PostConstruct, он выполняется после инициализации Spring Bean. Когда мы аннотируем метод Spring Bean аннотацией PreDestroy, он вызывается, когда экземпляр бина удаляется из контекста.
- Spring @Async Аннотация @Async в Spring позволяет нам создавать асинхронные методы в spring. Давайте изучим @Async в этом учебнике по фреймворку Spring.
Учебники по Spring Boot
- Учебник по Spring Boot
- Компоненты Spring Boot
- Spring Boot @SpringBootApplication, Класс SpringApplication Аннотация Spring Boot @SpringBootApplication используется для пометки конфигурационного класса, который объявляет один или несколько методов @Bean, а также запускает автоконфигурацию и сканирование компонентов. Класс SpringApplication в Spring Boot используется для запуска и инициализации приложения Spring из главного метода Java.
- Spring Boot REST В этом учебнике объясняется, как создавать веб-сервисы REST с использованием модуля Spring Boot.
- Spring Boot MongoDB Узнайте, как использовать MongoDB в приложении Spring Boot.
- Кэш Redis Spring Boot В этой статье объясняется, как интегрировать кэш Redis в приложение Spring Boot.
- Spring Boot Elasticsearch В этой статье объясняется, как интегрировать Elasticsearch в приложение Spring Boot.
- Конечные точки действия Spring Boot Actuator Конечные точки действия Spring Boot Actuator позволяют нам отслеживать и взаимодействовать с нашим приложением. Spring Actuator – это подмодуль Spring Boot, который предоставляет встроенные конечные точки, которые мы можем включать и отключать для нашего приложения.
- Веб-интерфейс Spring Boot Initializr
- Пример Spring Boot CLI
- Spring Boot – Невозможно определить класс драйвера встроенной базы данных для типа базы данных NONE
- Вопросы на собеседовании по Spring Boot
Учебник по Spring MVC
- Учебник по Spring MVC для начинающих с помощью Spring Tool Suite Модули Spring MVC помогают нам создавать веб-приложения на основе Java. Это первый пост в серии о Spring MVC, и вы узнаете, как использовать Spring Tool Suite (STS) и создать простое веб-приложение с использованием фреймворка Spring MVC.
- Пример Spring MVC Этот учебник объясняет, как создать приложение Spring MVC с использованием Maven и среды разработки Eclipse, без использования Spring Tool Suite.
- Пример Spring Restful веб-сервиса с JSON Spring Framework предоставляет встроенную поддержку API Jackson JSON, и мы можем использовать ее для создания RESTful веб-сервиса, который будет возвращать JSON-ответ. В этом учебнике объясняются все различные части приложения, необходимые для настройки нашего приложения для возврата JSON-ответа и реализации REST API.
- Spring REST XML и JSON Spring REST поддерживает как XML, так и JSON в качестве сообщений запрос-ответ. В этом учебнике объясняется, как легко мы можем поддерживать оба из них с помощью простых конфигураций.
- Spring RestTemplate Spring RestTemplate предоставляет удобный способ тестирования RESTful веб-сервисов. Мы можем использовать RestTemplate для тестирования HTTP-основанных RESTful веб-сервисов, но он не поддерживает протокол HTTPS.
- Пример загрузки файлов Spring MVC Загрузка файлов – одна из обычных задач веб-приложения, поэтому Spring предоставляет встроенную поддержку загрузки файлов с использованием API Apache Commons FileUpload. Этот учебник направлен на понимание того, как различные компоненты настраиваются с примером загрузки одного и нескольких файлов.
- Пример интернационализации и локализации Spring MVC Для веб-приложения с пользователями по всему миру интернационализация (i18n) или локализация (L10n) очень важны для лучшего взаимодействия с пользователем. Большинство фреймворков веб-приложений предоставляют простые способы локализации приложения на основе языковых настроек пользователя. Spring также следует этому шаблону и предоставляет обширную поддержку интернационализации (i18n) с использованием перехватчиков Spring, резольверов локали и ресурсных пакетов для различных локалей. Этот учебник объясняет процесс i18n и l10n в веб-приложении Spring на примере проекта.
- Пример проверки формы Spring MVC Когда мы принимаем ввод пользователя в любом веб-приложении, становится необходимым проводить их проверку. Мы можем выполнять проверку ввода пользователя на стороне клиента с использованием JavaScript, но также необходимо проводить проверку на стороне сервера, чтобы убедиться, что мы обрабатываем допустимые данные в случае, если у пользователя отключен JavaScript. Фреймворк Spring MVC по умолчанию поддерживает спецификации JSR-303, и все, что нам нужно сделать, это добавить зависимости JSR-303 и его реализации в приложение Spring MVC. Spring также предоставляет аннотацию @Validator и класс
BindingResult
, с помощью которого мы можем получить ошибки, вызванные реализацией валидатора в методе обработчика запросов контроллера. В учебнике представлен пример проверки формы с использованием аннотаций, а также объяснено, как создать свой собственный пользовательский валидатор. - Обработка исключений в Spring MVC Любое веб-приложение требует хорошего дизайна обработки исключений, потому что мы не хотим предоставлять страницу, созданную контейнером, когда возникает необработанное исключение в нашем приложении. Фреймворк Spring MVC предоставляет подход для надежной обработки исключений в классах контроллера, глобальный обработчик и через реализацию HandlerExceptionResolver. Ознакомьтесь с примером проекта в учебнике, чтобы узнать больше об обработке исключений в Spring MVC.
- Пример перехватчиков Spring MVC Иногда мы хотим перехватить HTTP-запрос и выполнить некоторую обработку перед передачей его методам обработчика контроллера. Вот где пригодны перехватчики Spring MVC. Мы можем создать собственные перехватчики в Spring, либо реализуя интерфейс org.springframework.web.servlet.HandlerInterceptor, либо переопределяя абстрактный класс org.springframework.web.servlet.handler.HandlerInterceptorAdapter, который предоставляет базовую реализацию этого интерфейса. Ознакомьтесь с примером проекта в учебнике, чтобы узнать больше о перехватчиках Spring MVC.
- Пример сопоставления запросов Spring MVC @RequestMapping – одна из самых широко используемых аннотаций Spring MVC. Аннотация
org.springframework.web.bind.annotation.RequestMapping
используется для сопоставления веб-запросов с определенными классами обработчиков и/или методами обработчиков. @RequestMapping может быть применена как к классу контроллера, так и к методам. В этом учебнике объясняется различное использование с примерами и тестовой программой. - Управление сеансом Spring Модуль Spring Session предоставляет API и реализацию для управления пользовательским сеансом в веб-приложении. Spring Session разделяет логику управления сеансом от приложения, что делает его более устойчивым к сбоям. Spring Session состоит из следующих модулей: Spring Session Core, Spring Session JDBC, Spring Session Data Redis и Spring Session Hazelcast.
- Пример Spring MVC Gradle
Учебники Spring Batch
- Spring Batch Spring Batch позволяет легко обрабатывать большое количество записей, создавая пакеты. В этой статье объясняется, что такое Spring Batch, его архитектура и когда следует использовать приложение Spring Batch.
- Пример Spring Batch В этом руководстве объясняется, как создать проект Spring Batch для обработки больших CSV-файлов.
Учебник Spring JDBC
Большинство прикладных программ предприятия работают с реляционными базами данных. Вот почему Spring предоставляет обширную поддержку API JDBC, а также оболочки для выполнения операций CRUD с базой данных.
- Пример CRUD с Spring JDBC и JdbcTemplate с использованием источника данных Фреймворк Spring отлично интегрируется с API JDBC и предоставляет утилитарный класс JdbcTemplate, который мы можем использовать для избавления от шаблонного кода в нашей логике операций с базой данных, такой как открытие/закрытие соединения, ResultSet, PreparedStatement и т. д. В этом уроке представлен пример операций CRUD с использованием интеграции Spring JDBC.
- Пример использования Spring DataSource JNDI с Tomcat Мы также знаем, что использование DataSource с JNDI – предпочтительный способ достижения пулов соединений и получения преимуществ от контейнерных реализаций. Этот учебник объясняет, как мы можем использовать DataSource, определенный в контейнере Tomcat, в качестве ресурса JNDI для получения соединения с базой данных и выполнения различных операций. Это предпочтительный способ получения соединений с базой данных в веб-приложении Spring, поскольку контейнер заботится о управлении ресурсами базы данных.
- Пример управления транзакциями Spring с JDBC Управление транзакциями является тривиальной задачей в любом предприятии. Spring предоставляет обширную поддержку управления транзакциями и помогает разработчикам сосредотачиваться больше на бизнес-логике, а не беспокоиться о целостности данных. Декларативное управление транзакциями Spring является предпочтительным подходом к управлению транзакциями, потому что его очень легко использовать и нет прямой зависимости, он использует AOP и внедрение зависимостей.
- Spring JdbcTemplate Класс Spring JdbcTemplate является основой модуля Spring JDBC. Он предоставляет различные методы для выполнения SQL-запросов, чтения данных из набора результатов и т. д.
Учебник Spring Hibernate
Spring является одним из наиболее широко используемых фреймворков Java EE, а Hibernate – лучшим фреймворком ORM на рынке. Именно поэтому Spring предоставляет встроенную поддержку для Hibernate в модуле Spring ORM.
- Пример интеграции Spring и Hibernate В этом руководстве предоставляются полные сведения с примером интеграции Hibernate с автономным приложением Spring. Пример демонстрирует интеграцию между Spring 4 + Hibernate 4, а также Spring 4 + Hibernate 3.
- Пример CRUD с использованием Spring MVC и Hibernate Spring MVC легко интегрируется с фреймворком Hibernate. Также мы можем использовать декларативное управление транзакциями Spring, что освобождает наше приложение от шаблонного кода.
- Пример использования Spring ORM
- Spring ORM с управлением транзакциями с помощью AOP
Учебное пособие по Spring Security
Spring Security может быть применен к любому веб-приложению на Java. Он работает как отдельная часть приложения и предоставляет различные способы аутентификации и авторизации.
- Spring Security в веб-приложении с использованием Servlet Этот учебник объясняет основы модуля Spring Security. Он также предоставляет примеры аутентификации на основе памяти, DAO и JDBC с примерным проектом.
- Пример безопасности Spring MVC Если мы используем фреймворк Spring MVC, то применение Spring Security очень просто, потому что у нас уже есть конфигурации на основе Spring. Все, что нам нужно, это подключить конфигурации, связанные с безопасностью.
- Spring 4 Security В этой статье объясняется модуль Spring Security, введенный в Spring 4.
- Spring Security MVC Эта статья объясняет, как использовать Spring Security в приложении Spring MVC.
- Авторизация доступа на основе ролей в Spring Security
Руководства по интеграции Spring
- Пример руководства по интеграции Spring JSF JSF – это компонентный фреймворк с большим уклоном в пользовательские интерфейсы, тогда как основной принцип Spring – это внедрение зависимостей. В этом руководстве объясняется, как достичь лучших результатов при их интеграции: JSF с Spring Framework.
- Пример интеграции Primefaces Spring & Hibernate Это один из примеров интеграции, где мы объясняем, как интегрировать PrimeFaces с фреймворками Spring и Hibernate. Это очень распространенная комбинация, чтобы получить максимальную отдачу от каждого из фреймворков.
- Пример интеграции PrimeFaces Hibernate SpringRoo SpringRoo – это инструмент с открытым исходным кодом, который использует концепцию “соглашения о конфигурации” для облегчения создания приложений на основе Java с помощью командной строки. В этом руководстве объясняется интеграция между SpringRoo, PrimeFaces и Hibernate.
Spring Messaging
Вопросы на собеседование по Spring
Если вы идете на собеседование по Java EE, где требуется Spring, надеюсь, что этот пост поможет вам быстро освежить свои знания. Это все на сегодня для учебных пособий по Spring. У Spring Framework есть много модулей, и я буду публиковать о них в будущем и продолжу включать их здесь. Поэтому я бы порекомендовал вам добавить этот пост в закладки для будущих ссылок.
Source:
https://www.digitalocean.com/community/tutorials/spring-tutorial-spring-core-tutorial