Перейти к содержимому

Spring boot starter parent что это

  • автор:

Зачем нужен Spring Boot Starter Parent?

В этом руководстве мы узнаем о spring-boot-starter-parent и о том, как мы можем извлечь из этого пользу для лучшего управления зависимостями, конфигураций по умолчанию для плагинов и быстрой сборки наших приложений Spring Boot .

Мы также увидим, как мы можем переопределить версии существующих зависимостей и свойств, предоставленных starter-parent.

2. Spring Boot Starter Parent​

Проект spring-boot-starter-parent — это специальный начальный проект, который предоставляет конфигурации по умолчанию для нашего приложения и полное дерево зависимостей для быстрой сборки нашего проекта Spring Boot .

Он также предоставляет конфигурацию по умолчанию для плагинов Maven, таких как maven-failsafe-plugin , maven-jar-plugin , maven-surefire-plugin , maven-war-plugin .

Кроме того, он также наследует управление зависимостями от spring-boot-dependencies , которые являются родительскими для s pring-boot-starter-parent .

Мы можем начать использовать его в нашем проекте, добавив его в качестве родителя в pom.xml нашего проекта :

 parent>   groupId>org.springframework.bootgroupId>   artifactId>spring-boot-starter-parentartifactId>   version>2.4.0version>   parent> 

Мы всегда можем получить последнюю версию spring-boot-starter-parent из Maven Central.

3. Управление зависимостями​

Как только мы объявили начальный родитель в нашем проекте, мы можем получить любую зависимость от родителя, просто объявив ее в нашем теге зависимостей .

Кроме того, нам не нужно определять версии зависимостей, Maven будет загружать файлы jar на основе версии, определенной для начального родителя в родительском теге.

Например, если мы создаем веб-проект, мы можем добавить spring-boot-starter-web напрямую, и нам не нужно указывать версию:

 dependencies>   dependency>   groupId>org.springframework.bootgroupId>   artifactId>spring-boot-starter-webartifactId>   dependency>   dependencies> 

4. Тег управления зависимостями​

Чтобы управлять другой версией зависимости, предоставленной начальным родителем, мы можем явно объявить зависимость и ее версию в разделе dependencyManagement :

 dependencyManagement>   dependencies>   dependency>   groupId>org.springframework.bootgroupId>   artifactId>spring-boot-starter-data-jpaartifactId>   version>2.4.0version>   dependency>   dependencies>   dependencyManagement> 

5. Свойства​

Чтобы изменить значение любого свойства, определенного в начальном родительском элементе, мы можем повторно объявить его в нашем разделе свойств.

Spring -boot-starter-parent через свои родительские зависимости spring-boot использует свойства для настройки всех версий зависимостей, версии Java и версий плагинов Maven.

Таким образом, нам легко управлять этими конфигурациями, просто изменяя соответствующее свойство.

Если мы хотим изменить версию какой-либо зависимости, которую мы хотим извлечь из начального родителя, мы можем добавить зависимость в тег зависимости и напрямую настроить ее свойство:

 properties>   junit.version>4.11junit.version>   properties> 

6. Переопределение других свойств​

Мы также можем использовать свойства для других конфигураций, таких как управление версиями плагинов, или даже для некоторых базовых конфигураций, таких как управление версией Java, исходной кодировкой.

Нам просто нужно повторно объявить свойство с новым значением.

Например, чтобы изменить версию Java, мы можем указать ее в свойстве java.version :

 properties>   java.version>1.8java.version>   properties> 

7. Проект Spring Boot без стартового родителя​

Иногда у нас есть собственный родитель Maven. Или мы можем предпочесть объявить все наши конфигурации Maven вручную.

В этом случае мы можем отказаться от использования проекта spring-boot-starter-parent . Но мы все еще можем извлечь выгоду из его дерева зависимостей, добавив зависимость spring-boot-dependencies в наш проект в области импорта .

Давайте объясним это на простом примере, в котором мы хотим использовать другого родителя, отличного от начального родителя:

 parent>   groupId>com.foreachgroupId>   artifactId>spring-boot-parentartifactId>   version>1.0.0-SNAPSHOTversion>   parent> 

Здесь мы использовали родительские модули другого проекта в качестве нашей родительской зависимости.

Теперь, в этом случае, мы все еще можем получить те же преимущества управления зависимостями, добавив его в область импорта и тип pom :

 dependencyManagement>   dependencies>   dependency>   groupId>org.springframework.bootgroupId>   artifactId>spring-boot-dependenciesartifactId>   version>2.2.6.RELEASEversion>   type>pomtype>   scope>importscope>   dependency>   dependencies>   dependencyManagement> 

Кроме того, мы можем получить любую зависимость, просто объявив ее в зависимостях , как мы это делали в наших предыдущих примерах. Для этих зависимостей номера версий не нужны.

8. Резюме​

В этом руководстве мы представили обзор spring-boot-starter-parent и преимущества добавления его в качестве родителя в любой дочерний проект.

Далее мы узнали, как управлять зависимостями. Мы можем переопределить зависимости в dependencyManagement или через свойства.

Исходный код для фрагментов, используемых в этом руководстве, доступен на Github , один из которых использует начальный родительский элемент, а другой — пользовательский родительский элемент.

  • 1. Введение
  • 2. Spring Boot Starter Parent
  • 3. Управление зависимостями
  • 4. Тег управления зависимостями
  • 5. Свойства
  • 6. Переопределение других свойств
  • 7. Проект Spring Boot без стартового родителя
  • 8. Резюме

Введение в Spring Boot

Если вы только приступаете к работе со Spring Boot или «Spring» в целом,начните с ознакомления с этим разделом. Он даст ответы на основные вопросы «что?», «как?» и «зачем?». Раздел содержит введение в Spring Boot вместе с инструкциями по установке. Затем мы проведем вас через создание первого приложения в Spring Boot, описывая по ходу некоторые основные принципы.

Введение в Spring Boot

Spring Boot помогает создавать автономные приложения на базе Spring, которые можно затем выполнять. Мы придерживаемся субъективного взгляда на платформу Spring и сторонние библиотеки, чтобы вы могли начать работу, приложив минимум усилий. Большинство приложений на Spring Boot не нуждаются в детальном конфигурировании Spring.

Вы можете использовать Spring Boot для создания Java-приложений, которые могут быть запущены с помощью команды java -jar или более традиционных методов развертываний через war-файлы. Мы также предоставляем инструментальное средство командной строки, которое запускает «скрипты Spring».

Нашими основными целями является:

  • Обеспечить радикально более быстрый и широко доступный опыт начальной работы для любых разработок на Spring.
  • Предлагать собственное мнение с самого начала, но уступать, если требования начинают расходиться со стандартными.
  • Предоставлять ряд нефункциональных возможностей, которые являются общими для больших классов проектов (таких как встроенные серверы, безопасность, метрики, проверка работоспособности и вынесенная во внешний файл конфигурация).
  • Абсолютное отсутствие генерации кода и требований к XML-конфигурации.

Разработка вашего первого приложения средствами Spring Boot

В этом разделе описывается разработка небольшого веб-приложения «Hello World!», которое демонстрирует некоторые ключевые возможности Spring Boot. Для сборки этого проекта мы используем Maven, поскольку большинство IDE поддерживают его.

Веб-сайт spring.io содержит множество гайдов по «началу работы», в которых используется Spring Boot. Если вам потребуется решить конкретную проблему, сначала загляните туда.

Вы можете пропустить приведенные ниже шаги, перейдя по адресу start.spring.io и выбрав стартовый паке для веб из поисковика зависимостей. При этом будет создана новая структура проекта, чтобы можно было сразу же приступать к написанию кода.p>

Прежде чем мы приступим, откройте терминал и выполните следующие команды, чтобы удостовериться, что у вас установлены действительные версии Java и Maven:

$ java -version java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
$ mvn -v Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T14:33:14-04:00) Maven home: /usr/local/Cellar/maven/3.3.9/libexec Java version: 1.8.0_102, vendor: Oracle Corporation

Этот образец должен быть создан в собственном каталоге. Последующие инструкции предполагают, что вы уже создали подходящий каталог и что он является вашим текущим каталогом.

Создание POM

Начать необходимо с создания файла pom.xml для Maven. pom.xml – это набор правил, который используется для сборки проекта. Откройте ваш любимый текстовый редактор и добавьте следующее:

  4.0.0 com.example myproject 0.0.1-SNAPSHOT org.springframework.boot spring-boot-starter-parent 2.7.5  

Предыдущий листинг должен позволить вам получить рабочий билд. Вы можете проверить его, запустив mvn package (пока что можно игнорировать предупреждение «jar будет пуст – отсутствует содержимое, помеченное для включения!»).

На этом этапе можно импортировать проект в IDE (большинство современных Java IDE предусматривают встроенную поддержку Maven). Для упрощения в этом примере мы продолжаем использовать обычный текстовый редактор.

Добавление зависимостей из classpath

Spring Boot предусматривает ряд «стартовых пакетов», которые позволяют добавлять jar-файлы в classpath. Наши приложения для дымовых (на общую работоспособность) тестов (smoke tests) используют spring-boot-starter-parent в parent секции POM-модели. spring-boot-starter-parent – это специальный стартовый пакет, который предусматривает используемые параметры Maven по умолчанию. Он также предусматривает секцию управления зависимостями , чтобы можно было опускать теги version для «избранных» зависимостей.

Другие «стартовые пакеты» предусматривают зависимости, которые, скорее всего, понадобятся при разработке приложений определенного типа. Поскольку мы разрабатываем веб-приложение, то добавляем зависимость от spring-boot-starter-web . Перед этим можно взглянуть, что у нас имеется на данный момент, выполнив следующую команду:

$ mvn dependency:tree [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT

Команда mvn dependency:tree выводит древовидное представление зависимостей проекта. Как можно заметить, spring-boot-starter-parent сам по себе не предусматривает никаких зависимостей. Чтобы добавить необходимые зависимости, отредактируйте свой pom.xml и добавьте зависимость spring-boot-starter-web сразу под parent секцией:

  org.springframework.boot spring-boot-starter-web  

Если вы снова запустите mvn dependency:tree , то увидите, что теперь существует несколько дополнительных зависимостей, включая веб-сервер Tomcat и сам Spring Boot.

Написание кода

Чтобы завершить приложение, нам необходимо создать один Java-файл. По умолчанию Maven компилирует исходники из каталога src/main/java , поэтому необходимо создать эту структуру каталога, а затем добавить файл с именем src/main/java/MyApplication.java , который будет содержать следующий код:

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @EnableAutoConfiguration public class MyApplication < @RequestMapping("/") String home() < return "Hello World!"; >public static void main(String[] args) < SpringApplication.run(MyApplication.class, args); >> 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.boot.runApplication import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @RestController @EnableAutoConfiguration class MyApplication < @RequestMapping("/") fun home() = "Hello World!" >fun main(args: Array) < runApplication(*args) > 

Хотя кода не так уж и много, но происходит очень многое. Рассмотрим важные элементы в следующих нескольких разделах.

Аннотации @RestController и @RequestMapping

Первая аннотация для нашего класса MyApplication – это @RestController . Она известнка как стереотипная аннотация. Данная аннотация служит подсказкой для людей, читающих код, и для Spring, что класс играет определенную роль. В данном случае наш класс является @Controller для веб, поэтому Spring учитывает его при обработке входящих веб-запросов.

Аннотация @RequestMapping передает информацию о «маршрутизации». Она сообщает Spring, что любой HTTP-запрос с путем / следует отображать на метод home . Аннотация @RestController сообщает Spring, что необходимо вывести результирующую строку обратно непосредственно вызывающей программе.

Аннотации @RestController и @RequestMapping являются аннотациями Spring MVC (они не характерны для Spring Boot).

Аннотация @EnableAutoConfiguration

Вторая аннотация на уровне класса – это @EnableAutoConfiguration . Эта аннотация сообщает Spring Boot, что необходимо «угадать», как нужно сконфигурировать Spring, основываясь на добавленных вами jar-зависимостях. Поскольку spring-boot-starter-web добавил Tomcat и Spring MVC, средство автоконфигурирования предполагает, что вы разрабатываете веб-приложение, и настраивает Spring соответствующим образом.

Стартовые пакеты и автоконфигурация

Автоконфигурация предназначена для работы со «стартовыми пакетами», но эти два понятия не связаны напрямую. Вы можете свободно выбирать jar-зависимости вне стартовых пакетов. Spring Boot по-прежнему будет предпринимать все возможное для автоконфигурирования вашего приложения.

Метод «main»

Заключительной частью нашего приложения является метод main . Это стандатный метод, который соответствует стандарту Java для точки входа в приложение. Наш метод main делегирует полномочия классу SpringApplication для Spring Boot, вызывая run . SpringApplication осуществляет начальную загрузку нашего приложения, запуская Spring, который, в свою очередь, запускает автоматически сконфигурированный веб-сервер Tomcat. Нам необходимо передать MyApplication.class в качестве аргумента в метод run , чтобы сообщить SpringApplication , какой компонент Spring является первичным. Массив args также передается для открытия любых аргументов командной строки.

Выполняем пример

На этом этапе приложение уже должно работать. Поскольку вы использовали POM-модель со spring-boot-starter-parent , у вас имеется цель run , которую можно использовать для запуска приложения. Вводим mvn spring-boot:run из корневого каталога проекта, чтобы запустить приложение. Вы должны увидеть вывод, подобный следующему:

$ mvn spring-boot:run . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.5) . . . . . . . . (log output here) . . . . . Started MyApplication in 2.222 seconds (JVM running for 6.514)

Если вы откроете веб-браузер на localhost:8080 , то увидите следующее сообщение:

Hello World!

Чтобы поэтапно выйти из приложения, нажмите ctrl-c .

Создание исполняемого jar-файла

Мы завершаем наш пример созданием полностью самодостаточного исполняемого jar-файла, который можно выполнять в производственном окружении. Исполняемые jar-файлы (иногда называемые «fat (толстыми) jar-файлами») – это архивы, содержащие скомпилированные классы вместе со всеми jar-зависимостями, которые необходимы коду для выполнения.

Исполняемые jar-файлы и Java

Java не предусматривает стандартного способа загрузки вложенных jar-файлов (jar-файлов, которые сами содержатся внутри jar-файлов). Это может стать проблемой, если необходимо распространять самодостаточное приложение.

Чтобы решить эту проблему, многие разработчики используют «uber (убер)» jar-файлы. В uber jar-файл все классы из всех зависимостей приложения упакованы в один архив. Проблема такого подхода заключается в том, что становится трудно понять, какие именно библиотеки находятся в приложении. Также может возникнуть проблема, если одно и то же имя файла используется (но с разным содержимым) в нескольких jar-файлах.

Spring Boot использует другой подход и позволяет вложить jar-файлы напрямую.

Чтобы создать исполняемый jar-файл, необходимо добавить spring-boot-maven-plugin в наш pom.xml . Для этого вставляем следующие строки чуть ниже секции dependencies :

   org.springframework.boot spring-boot-maven-plugin   

POM-модель spring-boot-starter-parent включает конфигурацию для привязки цели repackage . Если вы не используете родительскую POM-модель, то вам необходимо объявить эту конфигурацию самостоятельно.

Сохраняем pom.xml и выполняем mvn package из командной строки следующим образом:

$ mvn package [INFO] Scanning for projects. [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] . .. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject --- [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.7.5:repackage (default) @ myproject --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------

Если вы посмотрите в target каталог, то должны увидеть там myproject-0.0.1-SNAPSHOT.jar . Размер файла должен составлять около 10 МБ. Если вы хотите заглянуть внутрь, то можете использовать jar tvf , как показано ниже:

$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar

В target каталоге также должнен присутствовать гораздо меньший файл с именем myproject-0.0.1-SNAPSHOT.jar.original . Это оригинальный jar-файл, который Maven создал до того, как он был перепакован Spring Boot.

Чтобы запустить это приложение, используйте команду java -jar , как показано ниже:

$ java -jar target/myproject-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.5) . . . . . . . . (log output here) . . . . . Started MyApplication in 2.536 seconds (JVM running for 2.864)

Как и раньше, чтобы выйти из приложения, нажмите ctrl-c .

Getting Started

1. Знакомство с Spring Boot

  • Обеспечьте радикально более быстрый и широко доступный начальный опыт для всей разработки Spring.
  • Будьте нестандартны и нестандартны, но быстро уходите с дороги, поскольку требования начинают отличаться от значений по умолчанию.
  • Предоставьте ряд нефункциональных функций, общих для больших классов проектов (таких как встроенные серверы, безопасность, метрики, проверки работоспособности и внешняя конфигурация).
  • Абсолютно не требуется генерация кода (если не используется собственный образ) и не требуется конфигурация XML.

2. Системные требования

2.1. Контейнеры сервлетов

2.2. Собственные образы GraalVM

3. Установка Spring Boot

$ java -version

3.1. Инструкции по установке для разработчика Java

3.1.1. Установка Maven
Во многих операционных системах Maven можно установить с помощью менеджера пакетов. Если вы используете OSX Homebrew, попробуйте brew install maven . Пользователи Ubuntu могут запустить sudo apt-get install maven . Пользователи Windows с Chocolatey могут запускать choco install maven из командной строки с повышенными правами (администратора).
3.1.2. Установка Gradle

Gradle Wrapper

3.2. Установка Spring Boot CLI

3.2.1. Ручная установка
  • spring-boot-cli-3.1.3-bin.zip
  • spring-boot-cli-3.1.3-bin.tar.gz
3.2.2. Установка с помощью SDKMAN!
$ sdk install springboot $ spring --version Spring CLI v3.1.3
$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-3.1.3-bin/spring-3.1.3/ $ sdk default springboot dev $ spring --version Spring CLI v3.1.3
$ sdk ls springboot ================================================================================ Available Springboot Versions ================================================================================ > + dev * 3.1.3 ================================================================================ + - local version * - installed > - currently in use ================================================================================
3.2.3. Домашняя установка OSX
$ brew tap spring-io/tap $ brew install spring-boot
Если вы не видите формулу, возможно, ваша установка Brew устарела. В этом случае запустите brew update и повторите попытку.
3.2.4. Установка MacPorts
$ sudo port install spring-boot-cli
3.2.5. Завершение командной строки
$ . ~/.sdkman/candidates/springboot/current/shell-completion/bash/spring $ spring grab help jar run test version
Если вы устанавливаете Spring Boot CLI с помощью Homebrew или MacPorts, сценарии завершения командной строки автоматически регистрируются в вашей оболочке.
3.2.6. Установка Windows Scoop
> scoop bucket add extras > scoop install springboot
Если вы не видите манифест приложения, возможно, ваша установка Scoop устарела. В этом случае запустите scoop update и повторите попытку.

4. Разработка вашего первого приложения Spring Boot

4.1. Prerequisites

$ java -version openjdk version "17.0.4.1" 2022-08-12 LTS OpenJDK Runtime Environment (build 17.0.4.1+1-LTS) OpenJDK 64-Bit Server VM (build 17.0.4.1+1-LTS, mixed mode, sharing)
4.1.1. Maven
$ mvn -v Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0) Maven home: usr/Users/developer/tools/maven/3.8.5 Java version: 17.0.4.1, vendor: BellSoft, runtime: /Users/developer/sdkman/candidates/java/17.0.4.1-librca
4.1.2. Gradle
$ gradle --version ------------------------------------------------------------ Gradle 8.1.1 ------------------------------------------------------------ Build time: 2023-04-21 12:31:26 UTC Revision: 1cf537a851c635c364a4214885f8b9798051175b Kotlin: 1.8.10 Groovy: 3.0.15 Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021 JVM: 17.0.7 (BellSoft 17.0.7+7-LTS) OS: Linux 6.2.12-200.fc37.aarch64 aarch64

4.2. Настройка проекта с помощью Maven

"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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> modelVersion>4.0.0 modelVersion> groupId>com.example groupId> artifactId>myproject artifactId> version>0.0.1-SNAPSHOT version> parent> groupId>org.springframework.boot groupId> artifactId>spring-boot-starter-parent artifactId> version>3.1.3 version> parent>  project>
На этом этапе вы можете импортировать проект в IDE (большинство современных IDE для Java включают встроенную поддержку Maven). Для простоты в этом примере мы продолжаем использовать обычный текстовый редактор.

4.3. Настройка проекта с помощью Gradle

plugins < id 'java' id 'org.springframework.boot' version '3.1.3' > apply plugin: 'io.spring.dependency-management' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositories < mavenCentral() >dependencies
На этом этапе вы можете импортировать проект в IDE (большинство современных IDE для Java включают встроенную поддержку Gradle). Для простоты в этом примере мы продолжаем использовать обычный текстовый редактор.

4.4. Добавление зависимостей пути к классам

4.4.1. Maven
$ mvn dependency:tree [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT
dependencies> dependency> groupId>org.springframework.boot groupId> artifactId>spring-boot-starter-web artifactId> dependency> dependencies>
4.4.2. Gradle
$ gradle dependencies > Task :dependencies ------------------------------------------------------------ Root project 'myproject' ------------------------------------------------------------
dependencies < implementation 'org.springframework.boot:spring-boot-starter-web' >

4.5. Написание кода

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @SpringBootApplication public class MyApplication < @RequestMapping("/") String home( ) < return "Hello World!"; > public static void main(String[] args) < SpringApplication.run(MyApplication.class, args); > > 
import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @RestController @SpringBootApplication class MyApplication < @RequestMapping("/") fun home() = "Hello World!" > fun main(args: ArrayString>) < runApplication(*args) > 

Spring Boot Complete, пример

В этом посте приведен полный пример использования весенней загрузки для разработки слабо связанной службы REST. Используя весеннюю загрузку, мы можем разработать готовое к работе Java-приложение, которое будет работать независимо, как отдельное приложение с минимальными зависимостями и меньшей связью с другими приложениями. Большую часть времени приложение весенней загрузки будет предоставлять связную услугу, и границы службы будут четко определены. Давайте углубимся в наш пример.

Для этого урока я собираюсь использовать Spring Boot 2.0.3.RELEASE, который требует java 8 или 9 и Maven 3.2+, Eclipse в качестве IDE.

Создание Maven Jar модуля

Поскольку мы собираемся связать наше приложение в виде файла .jar , мы можем использовать поддержку Eclipse IDE для создания jar-модуля maven после интеграции maven с Eclipse IDE. Последняя версия Eclipse поставляется с интегрированным плагином Maven. Так что вам не нужно явно добавлять плагин Maven в Eclipse. Я не собираюсь объяснять, как создать модуль jav maven с затмением в этом посте. Если вы хотите узнать это, вы можете прочитать мой другой пост здесь, который ясно объясняет, как создавать модули maven с помощью eclipse.

Если вы создадите проект maven с помощью артефакта quickstart , вы получите структуру проекта, подобную следующей.

Я создал модуль maven под названием «customer» с «com.semika» в качестве groupId и «customer» в качестве идентификатора артефакта. Вы можете выбрать то, что когда-либо структура пакета, вы хотите. Ваша внутренняя структура пакета будет меняться в зависимости от этого.

Файлы App.java и AppTest.java будут удалены в ближайшее время. Взгляните на файл pom.xml который содержит информацию о проекте и сведения о конфигурации, используемые Maven для создания проекта. Вы можете удалить зависимость Junit на данный момент, так как это руководство не охватывает функции модульного тестирования.

Я хочу выделить один важный элемент здесь.

Здесь мы говорим maven, что нужно связать наше приложение как файл .jar для развертывания.

Добавление функций весенней загрузки

Теперь то, что мы имеем, это типичный мавенский кувшин. Как мы собираемся преобразовать это в весеннее загрузочное приложение?

Все весенние загрузочные зависимости определены в id группы org.springframework.boot в репозитории maven. spring-boot-starter-parent – это проект, который имеет некоторые настройки по умолчанию и основные необходимые конфигурации, которые мы можем использовать, чтобы быстро начать использовать Spring Boot.

Мы можем унаследовать эти настройки по умолчанию, добавив следующий элемент в наш файл pom.xml .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *