Руководство Spring Boot для начинающих
View more Tutorials:



Spring Boot является проектом на уровне IO Execution (уровень выполнения) IO Spring Framework
Spring Boot это следуюший шаг Spring, чтобы сделать его легче в настройке и развитии приложений. С Spring Boot конфигурации Spring минимизируется максимально. Spring Boot поддерживает встроенный контейнер (embedded containers), который позволяет веб-приложениям работать независимо и без необходимости применения на Web Server
Вы можете использовать spring Boot чтобы создать Java Web приложение, работающее через команду line "Java -jar" или экспортировать War файл для применения на Web Server как обычно. Spring Boot дает вам "CLI Tool" для запуска сценариев Spring (spring scripts)
Spring Boot это следуюший шаг Spring, чтобы сделать его легче в настройке и развитии приложений. С Spring Boot конфигурации Spring минимизируется максимально. Spring Boot поддерживает встроенный контейнер (embedded containers), который позволяет веб-приложениям работать независимо и без необходимости применения на Web Server
Вы можете использовать spring Boot чтобы создать Java Web приложение, работающее через команду line "Java -jar" или экспортировать War файл для применения на Web Server как обычно. Spring Boot дает вам "CLI Tool" для запуска сценариев Spring (spring scripts)
Spring Boot можно объяснить просто иллюстрацией ниже:

Далее перечислены преимущества Spring Boot:
- Легко используется для развития приложения на основе Spring с Java или Groovy Spring
- Минимизирует время развития и поднимает производительность
- Избегает написание многих кодов прототипа (boilerplate), Annotations и конфигурации XML
- Легко позволяет вам взаимодействовать с приложениями Spring Boot c экологическими системами Spring как Spring JDBC, Spring ORM, Spring Data, Spring Security и т.д
- Следует подходу "Принципы конфигурации по умолчанию" чтобы минимизировать время и старания, вложенные для развития приложений.
- Обеспечивает встроенный Server (Embedded HTTP servers) как Tomcat, Jetty .... чтобы быстро и легко развивать и тестировать веб-приложения
- Предоставляет инструменты CLI (Command Line Interface) для развития и тестирования приложений Spring Boot (Java или Groovy) из командных строк (command prompt) очень легко и быстро
- Обеспечивает много плагинов для быстрого развития и тестирования приложения Spring Boot используя инструменты Build, как Maven и Gradle
- Предлагает много плагинов для легкой работы с контейнерами встроенными базами данных (embedded database) и базами данных хранящиеся в памяти (in- memory Databases).
This post is based on:
- Eclipse 4.7 (Oxygen)
- Spring Boot 2.x
В этом документе я буду создавать приложение Hello Spring Boot, это простое веб-приложение использует Spring Boot, и это приложение будет работать независимо и без необходимости применения на Web Server
Spring Tool Suite (STS)Для создания приложений Spring Boot на IDE Eclipse необходимо установить Spring Tool Suite, который является расширенным плагином поддерживающий программирование Spring на Eclipse.
Если вы еще не установили, смотрите инструкции здесь:
В Eclipse, создать проект используя Spring Tool Suite (STS):
- File/New/Other...

- Name: HelloSpringBoot
- Group: org.o7planning
- Artifact: HelloSpringBoot
- Package: org.o7planning.hellospringboot



Проект был создан, ниже показывается структура проекта по умолчанию.

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.o7planning</groupId>
<artifactId>HelloSpringBoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>HelloSpringBoot</name>
<description>Hello Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
В предыдущем шаге вы создали Spring boot Project, смотрите содержание pom.xml:
pom.xml
Есть три пункта где нужно обратить внимание в pom.xml (1), (2), (3), как в следующей иллюстрации, Spring Boot позволяет вам упростить объявление библиотек Spring.

spring-boot-starter-parent
spring-boot-starter-parent готовый проект в Spring Boot. Стандартные зависимые библиотеки объявлены в spring-boot-starter-parent, ваш проект только унаследовал их. Нужно просто объявить <parent> в файле pom.xml вашего проекта.
** spring-boot-starter-parent **
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
Вы можете перезаписать зависимость по умолчанию Spring Boot. Эта тема более четко объяснена здесь:
- TODO
spring-boot-starter-web
Другие “Starter” только обеспечивают зависимости, которые вам может понадобятся при развитии конкретного типа приложения. Например, при развитии веб-приложений, вам нужна зависимость spring-boot-starter-web
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
spring-boot-maven-plugin
Spring-boot-maven-plugin является плагином, который обеспечивает необходимые библиотеки, помогает вашему проекту работать напрямю без необходимости применять на Web Server. Это помогает создать file jar, который может быть выполнен (Executable)
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- ... -->
</plugins>
В предыдущем шаге, вы создали HelloSpringBoot проект используя Spring Tool Suite и Eclipse, и без каких-либо изменений. Все создается по умолчанию. Теперь вам нужно несколько шагов для запуска приложения


Ваше приложение HelloSpringBoot запущено, вы можете проверить по ссылке

Сообщение об ошибке "404 Not Found", когда вы запустили ссылку выше, но это несильно проблематично, потому что ваш проект не имеет никакой страницы.
Создать файл style.css в папке static:

style.css
h1 {
color: red;
}
И еще раз запустить приложение с ссылкой

Run Configuration...
Вы можете изменить параметры для Server как порт, ContextPath, ... Эти вопросы говорятся в приложении в конце этого документа.
При создании "Spring Boot Web Appp", есть генерируются (generate) 1 класса инструментом "Spring Tool Suite":
- HelloSpringBootApplication

Ваше приложение начинается выполнением класса HelloSpringBootApplication. Этот класс аннотирован через @SpringBootApplication
HelloSpringBootApplication.java
package org.o7planning.hellospringboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringBootApplication.class, args);
}
}
Примечание @SpringBootApplication эквивалентно с использованием @Configuration, @EnableAutoConfiguration и @ComponentScan с их свойствами по умолчанию
Итак @SpringBootApplication помогает вам автоматическую конфигурацию Spring, и автоматически сканировать (scan) весь проект, чтобы найти компоненты Spring (Controller, Bean, service, ...)

Следующая статья:
Выше вы запустили приложение Spring Boot, вы можете изменить конфигурации Server, как Port, ContextPath, ....

Изменить Server HTTP Port:


Вы можете изменить другие свойства, если вы хотите, Eclipse предложит свойства которые могут быть изменены и их значение.