Адрес курса: Изучение Spring Boot с братом У
Мы знаем, что с 2002 года Spring постоянно развивается и в настоящее время стал настоящим стандартом в разработке Java EE (Java Enterprise Edition). Однако по мере развития технологий использование Spring постепенно становится громоздким, и большое количество файлов XML присутствует в проекте. Сложные конфигурации, проблемы интеграции сторонних фреймворков привели к снижению эффективности разработки и развёртывания.
В октябре 2012 года Mike Youngstrom создал запрос на функцию в Spring jira, требуя поддержки безконтейнерных веб-приложений в структуре Spring. Он говорил о том, чтобы использовать основной контейнер для направления конфигурации Spring внутри контейнера. Это выдержка из запроса jira:
Я считаю, что веб-архитектура Spring может быть значительно упрощена, если она предоставит инструменты и справочные структуры для использования компонентов и конфигураций Spring снизу вверх. Встроить и объединить эти общие службы веб-контейнеров в простой метод main() в управляемом Spring контейнере.
Этот запрос привёл к началу проекта Spring Boot в начале 2013 года. Сегодня версия Spring Boot достигла 2.0.3 RELEASE. Spring Boot не является решением для замены Spring, а скорее инструментом, тесно связанным со Spring, который предназначен для улучшения опыта разработчиков Spring. Кроме того, он интегрирует множество популярных сторонних библиотек, которые могут быть настроены практически без настройки в приложениях Spring Boot. Большинство приложений Spring Boot требуют лишь небольшого объёма кода конфигурации (на основе конфигурации Java), позволяя разработчикам сосредоточиться на бизнес-логике.
Если мы откроем официальный сайт Spring, мы увидим следующую диаграмму:
Здесь мы видим официальное позиционирование Spring Boot: Build Anything — создавай что угодно. Spring Boot стремится запускаться и работать как можно быстрее и требует минимального предварительного конфигурирования Spring. Также мы можем взглянуть на позиционирование двух других фреймворков:
SpringCloud: Coordinate Anything, координируй что угодно; SpringCloud Data Flow: Connect everything, соединяй всё.
Внимательно изучив эти формулировки, мы заметим, что официальный сайт Spring использует очень точные выражения, и также можно увидеть, что Spring придаёт большое значение этим трём технологиям, они являются ключевыми для изучения (также будут доступны курсы для экспертов по SpringCloud в будущем).
Каковы преимущества Spring Boot? Какие проблемы он решает? Мы можем объяснить это следующей диаграммой:
Spring Boot появился вместе с Spring 4.0, буквально означает «направлять». Таким образом, Spring Boot помогает разработчикам быстро создавать структуру Spring. Spring Boot наследует отличные характеристики исходного Spring, делая его более удобным и быстрым в использовании.
Например, если мы хотим создать веб-проект, используя Spring, нам нужно добавить несколько зависимостей в файл pom.xml. Однако Spring Boot поможет нам быстро запустить веб-контейнер, и нам нужно только добавить зависимость spring-boot-starter-web в файл pom.xml в Spring Boot.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
После перехода к этой зависимости мы увидим, что spring-boot-starter-web уже включает в себя множество зависимостей, включая те, которые ранее требовались в проектах Spring. Рассмотрим некоторые из них:
<!-- .....省略其他依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.7.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.7.RELEASE</version>
<scope>compile</scope>
</dependency>
Из этого видно, что Spring Boot значительно упрощает наше кодирование, избавляя нас от необходимости добавлять зависимости одну за другой.
Хотя Spring делает Java EE лёгким фреймворком, его сложная конфигурация, включающая различные XML и аннотации, может запутать разработчиков. Если возникает ошибка, бывает трудно определить причину. Spring Boot больше использует конфигурацию Java Config для настройки Spring. Например:
Я создаю новый класс, но не использую аннотацию @Service, то есть это обычный класс. Как сделать его управляемым компонентом Spring? Нам нужно только две аннотации: @Configuration и @Bean.
public class TestService {
public String sayHello () {
return "Hello Spring Boot!";
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JavaConfig {
@Bean
public TestService getTestService() {
return new TestService();
}
}
@Configuration указывает, что этот класс является классом конфигурации, а @Bean указывает, что метод возвращает компонент Bean. Таким образом, TestService становится управляемым компонентом Spring, и мы можем использовать его в других местах, просто добавив аннотацию @Resource для внедрения.
@Resource
private TestService testService;
Кроме того, в области развёртывания конфигурации в Spring было несколько XML и свойств, но в Spring Boot достаточно одного файла application.yml.
При использовании Spring нам необходимо развернуть Tomcat на сервере, затем скопировать проект в виде файла war в Tomcat. После использования Spring Boot нам не нужно развёртывать Tomcat на сервере. Поскольку Spring Boot включает Tomcat, нам достаточно упаковать проект в jar-файл и запустить его с помощью команды java -jar xxx.jar.
Кроме того, требования к среде выполнения снижены до наличия JDK в переменных среды.
Мы можем включить зависимость spring-boot-start-actuator, чтобы напрямую получать параметры производительности процесса во время работы через REST API, что удобно для мониторинга. Однако Spring Boot — это микрофреймворк, который не предоставляет соответствующих функций обнаружения и регистрации сервисов, внешних решений для мониторинга и управления безопасностью, поэтому в архитектуре микросервисов требуется совместное использование с Spring Cloud. Микросервисы — это тенденция будущего развития, и проекты будут постепенно переходить от традиционной архитектуры к микросервисной, поскольку микросервисы позволяют разным командам сосредоточиться на более узких областях работы, использовать независимые технологии и чаще развертывать.
Имея унаследованные превосходные характеристики Spring, а также поддерживая различные способы реализации REST API, Spring Boot также является технологией, которую активно рекомендует официальная сторона, поэтому можно сказать, что Spring Boot — это одна из основных тенденций будущего развития.
В этом курсе используется последняя версия Spring Boot 2.0.3 RELEASE, статьи курса представляют собой сценарии и демонстрации, извлечённые автором из реальных проектов, цель состоит в том, чтобы помочь учащимся быстро освоить Spring Boot и применить связанные с ним технологии в микросервисных проектах. Весь курс разделен на две части: базовую и продвинутую.
Базовая часть (уроки 01–10) в основном знакомит с некоторыми часто используемыми функциями Spring Boot в проектах, целью является помочь учащимся быстро овладеть знаниями, необходимыми для разработки с использованием Spring Boot, и применять технологии Spring Boot к реальной архитектуре проекта. Эта часть фокусируется на фреймворке Spring Boot, включая упаковку данных JSON, ведение журнала, настройку свойств, поддержку MVC, онлайн-документацию, шаблонные движки, обработку исключений, обработку AOP и интеграцию постоянного слоя и т. д.
Продвинутая часть (уроки 11–17) в основном представляет некоторые продвинутые технологии Spring Boot в проектах, цель — помочь учащимся интегрировать соответствующие функции при столкновении с конкретными сценариями в проекте. Эта часть также фокусируется на фреймворке Spring Boot, включая перехватчики, прослушиватели, кэширование, безопасную аутентификацию, токенизацию, очереди сообщений и т.д.
После внимательного прочтения этой серии статей учащиеся смогут быстро понять и освоить наиболее часто используемые технологии Spring Boot в проектах. В конце курса автор на основе содержания курса создаст пустую архитектуру проекта Spring Boot, которая также извлечена из реального проекта, учащиеся могут использовать эту архитектуру в реальных проектах и иметь возможность разрабатывать реальные проекты с помощью Spring Boot.
Исходный код курса предоставляется бесплатно для скачивания.
Этот курс подходит следующим группам людей:
Среда разработки этого курса:
Плагины, используемые в курсе:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )