Руководство Spring Boot для начинающих
1. Что такое Spring Boot?
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).
2. Цель статьи
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.
Если вы еще не установили, смотрите инструкции здесь:
3. Создать Spring Boot Project
В 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>
4. Некоторые объяснения про Spring Boot
В предыдущем шаге вы создали 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>
5. Запуск Spring Boot project
В предыдущем шаге, вы создали HelloSpringBoot проект используя Spring Tool Suite и Eclipse, и без каких-либо изменений. Все создается по умолчанию. Теперь вам нужно несколько шагов для запуска приложения
Ваше приложение HelloSpringBoot запущено, вы можете проверить по ссылке
Сообщение об ошибке "404 Not Found", когда вы запустили ссылку выше, но это несильно проблематично, потому что ваш проект не имеет никакой страницы.
Создать файл style.css в папке static:
style.css
h1 {
color: red;
}
И еще раз запустить приложение с ссылкой
Run Configuration...Вы можете изменить параметры для Server как порт, ContextPath, ... Эти вопросы говорятся в приложении в конце этого документа.
6. Как запускается Spring Boot?
При создании "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
- Установите Spring Tool Suite для Eclipse
- Руководство Spring для начинающих
- Руководство Spring Boot для начинающих
- Общие свойства Spring Boot
- Руководство Spring Boot и Thymeleaf
- Руководство Spring Boot и FreeMarker
- Руководство Spring Boot и Groovy
- Руководство Spring Boot и Mustache
- Руководство Spring Boot и JSP
- Руководство Spring Boot, Apache Tiles, JSP
- Используйте Logging в Spring Boot
- Мониторинг приложений с помощью Spring Boot Actuator
- Создание веб-приложения с несколькими языками с помощью Spring Boot
- Используйте несколько ViewResolver в Spring Boot
- Используйте Twitter Bootstrap в Spring Boot
- Руководство Spring Boot Interceptor
- Руководство Spring Boot, Spring JDBC и Spring Transaction
- Руководство Spring JDBC
- Руководство Spring Boot, JPA и Spring Transaction
- Руководство Spring Boot и Spring Data JPA
- Руководство Spring Boot, Hibernate и Spring Transaction
- Интеграция Spring Boot, JPA и H2 Database
- Руководство Spring Boot и MongoDB
- Используйте несколько DataSources с Spring Boot и JPA
- Используйте несколько DataSource с Spring Boot и RoutingDataSource
- Создайте приложение для входа с Spring Boot, Spring Security, Spring JDBC
- Создайте приложение для входа с Spring Boot, Spring Security, JPA
- Создайте приложение регистрации пользователей с помощью Spring Boot, Spring Form Validation
- Пример OAuth2 Social Login в Spring Boot.
- Запускать фоновые запланированные задачи в Spring
- Пример CRUD Restful Web Service c Spring Boot
- Пример Spring Boot Restful Client c RestTemplate
- Пример CRUD с Spring Boot, REST и AngularJS
- Защита Spring Boot RESTful Service используя Basic Authentication
- Защита Spring Boot RESTful Service используя Auth0 JWT
- Пример Upload file c Spring Boot
- Пример Download file c Spring Boot
- Пример Upload file c Spring Boot и jQuery Ajax
- Пример Upload file c Spring Boot и AngularJS
- Создание веб-приложения для корзины покупок с помощью Spring Boot, Hibernate
- Руководство Spring Email
- Создайте простое приложение Chat с Spring Boot и Websocket
- Разверните приложение Spring Boot на Tomcat Server
- Развертывание приложения Spring Boot на Oracle WebLogic Server
- Установите бесплатный сертификат Let's Encrypt SSL для Spring Boot
- Настройте Spring Boot для перенаправления HTTP на HTTPS
Show More