1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/eson15-springboot_study

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Изучение курса Spring Boot вместе с братом У

Адрес курса: Изучение Spring Boot с братом У

Введение: обзор курса

1. Что такое 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), позволяя разработчикам сосредоточиться на бизнес-логике.

2. Зачем изучать Spring Boot

2.1 Взгляд со стороны Spring

Если мы откроем официальный сайт Spring, мы увидим следующую диаграмму:

Spring官网首图

Здесь мы видим официальное позиционирование Spring Boot: Build Anything — создавай что угодно. Spring Boot стремится запускаться и работать как можно быстрее и требует минимального предварительного конфигурирования Spring. Также мы можем взглянуть на позиционирование двух других фреймворков:

SpringCloud: Coordinate Anything, координируй что угодно; SpringCloud Data Flow: Connect everything, соединяй всё.

Внимательно изучив эти формулировки, мы заметим, что официальный сайт Spring использует очень точные выражения, и также можно увидеть, что Spring придаёт большое значение этим трём технологиям, они являются ключевыми для изучения (также будут доступны курсы для экспертов по SpringCloud в будущем).

2.2 Преимущества Spring Boot

Каковы преимущества Spring Boot? Какие проблемы он решает? Мы можем объяснить это следующей диаграммой:

2.2.1 Хорошая наследственность

Spring Boot появился вместе с Spring 4.0, буквально означает «направлять». Таким образом, Spring Boot помогает разработчикам быстро создавать структуру Spring. Spring Boot наследует отличные характеристики исходного Spring, делая его более удобным и быстрым в использовании.

2.2.2 Упрощение кодирования

Например, если мы хотим создать веб-проект, используя 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 значительно упрощает наше кодирование, избавляя нас от необходимости добавлять зависимости одну за другой.

2.2.3 Упрощённая конфигурация

Хотя 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.

2.2.4 Упрощённое развёртывание

При использовании Spring нам необходимо развернуть Tomcat на сервере, затем скопировать проект в виде файла war в Tomcat. После использования Spring Boot нам не нужно развёртывать Tomcat на сервере. Поскольку Spring Boot включает Tomcat, нам достаточно упаковать проект в jar-файл и запустить его с помощью команды java -jar xxx.jar.

Кроме того, требования к среде выполнения снижены до наличия JDK в переменных среды.

2.2.5 Упрощённый мониторинг

Мы можем включить зависимость spring-boot-start-actuator, чтобы напрямую получать параметры производительности процесса во время работы через REST API, что удобно для мониторинга. Однако Spring Boot — это микрофреймворк, который не предоставляет соответствующих функций обнаружения и регистрации сервисов, внешних решений для мониторинга и управления безопасностью, поэтому в архитектуре микросервисов требуется совместное использование с Spring Cloud. Микросервисы — это тенденция будущего развития, и проекты будут постепенно переходить от традиционной архитектуры к микросервисной, поскольку микросервисы позволяют разным командам сосредоточиться на более узких областях работы, использовать независимые технологии и чаще развертывать.

Имея унаследованные превосходные характеристики Spring, а также поддерживая различные способы реализации REST API, Spring Boot также является технологией, которую активно рекомендует официальная сторона, поэтому можно сказать, что Spring Boot — это одна из основных тенденций будущего развития.

3. Что можно изучить в этом курсе?

В этом курсе используется последняя версия 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.

Исходный код курса предоставляется бесплатно для скачивания.

4. Кому подходит этот курс?

Этот курс подходит следующим группам людей:

  • Студенты или самоучки, имеющие базовые знания Java и знакомые с Spring и Maven.
  • Сотрудники, имеющие опыт работы с традиционными проектами и желающие развиваться в направлении микросервисов.
  • Люди, интересующиеся новыми технологиями и увлеченные Spring Boot.
  • Исследователи, желающие узнать о Spring Boot версии 2.0.3.

5. Среда разработки и плагины этого курса

Среда разработки этого курса:

  • Инструмент разработки: IDEA 2017.
  • Версия JDK: JDK 1.8.
  • Версия Spring Boot: 2.0.3 RELEASE.
  • Версия Maven: 3.5.2.

Плагины, используемые в курсе:

  • FastJson.
  • Swagger2.
  • Thymeleaf.
  • MyBatis.
  • Redis.
  • ActiveMQ.
  • Shiro.
  • Lucence.

6. Каталог курса

  • Введение: обзор курса.
  • Урок 01: настройка среды разработки Spring Boot и запуск проекта.
  • Урок 02: возврат данных JSON и упаковка данных в Spring Boot.
  • Урок 03: использование slf4j для ведения журнала в Spring Boot.
  • Урок 04: настройка свойств проекта в Spring Boot.
  • Урок 05: поддержка MVC в Spring Boot.
  • Урок 06: интеграция Swagger2 для создания онлайн-интерфейсной документации в Spring Boot.
  • Урок 07: интеграция шаблонизатора Thymeleaf в Spring Boot.
  • Урок 08: обработка глобальных исключений в Spring Boot.
  • Урок 09: обработка аспектов AOP в Spring Boot.
  • Урок 10: интеграция MyBatis в Spring Boot.
  • Урок 11: управление транзакциями в Spring Boot.
  • Урок 12: использование прослушивателей в Spring Boot.
  • Урок 13: использование перехватчиков в Spring Boot.
  • Урок 14: интеграция Redis в Spring Boot.
  • Урок 15: интеграция ActiveMQ в Spring Boot.
  • Урок 16: интеграция Shiro в Spring Boot.
  • Урок 17: интеграция Lucence в Spring Boot.
  • Урок 18: упаковка и развёртывание приложений Spring Boot.
  • Урок 19: создание архитектуры для реальных проектов с использованием Spring Boot.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/eson15-springboot_study.git
git@api.gitlife.ru:oschina-mirror/eson15-springboot_study.git
oschina-mirror
eson15-springboot_study
eson15-springboot_study
master