создать spring boot приложение в idea
Создаем Spring Boot Hello World приложение в Intellij IDEA
Самый простой способ создать Spring Boot приложение, на мой взгляд — это воспользоваться официальным сайтом Spring.
Открываем Intellij IDEA и создаем новый Maven проект:
После создания проекта идем на сайт Spring в раздеп Guides:
Далее в строке поиска пишем MVC и получаем такой результат:
Заходим по этой ссылке и делаем все, что там написано (далее по тексту).
Конфигурация pom.xml для Spring Boot
Чтобы сконфигурировать Spring Boot проект нам надо прописать build script:
Создаем файлы проекта Spring Boot
Далее по инструкции создаем пакет hello и в нем класс GreetingController:
Содержимой класса выглядит следующим образом:
Далее в ресурсах создаем папку templates и в ней файл greeting.html, имеющий следующее содержимое:
Далее в пакете hello создадим класс Application:
Далее создаем папку static в ресурсах и в ней создаем файл index.html:
Запуск Spring Boot приложения
Чтобы запустить приложение, надо перейти в класс Application и выполнить действия, показанные на скриншоте:
Наше приложение доступно по адресу http://127.0.0.1:8080
Создание WAR архива Spring Boot приложения и deploy на Apache Tomcat
Чтобы задеплоить написанное приложение на tomcat необходимо выполнить следующие действия:
Класс Application должен приобрести следующий вид:
В файл pom.xml дописываем
после тега version в начале файла.
Далее создаем war архив (View/Tool Windows/Maven Projects):
В проекте создалась папка target и в ней файл war.
Останавливаем проект и запускаем Apache Tomcat.
Заходим в Application List и деплоим наш файл, предварительно переименовав его, как вам удобно:
Tutorial: Create your first Spring application
This tutorial describes how to create and run a Spring application in IntelliJ IDEA. It will be a Spring Boot Maven project generated by Spring Initializr. This is the quickest way to create a Spring application, and IntelliJ IDEA provides a dedicated project wizard for it. You will learn how to expose an HTTP endpoint and map it to a method that returns a greeting to the user when accessed through a web browser.
Create a new Spring Boot project
From the Project SDK list, select Download JDK and download the latest version of Oracle OpenJDK (as of writing this tutorial, it was version 16.0.2).
Select the latest Java version.
Click Next to continue.
Click Finish to generate and set up the project.
Add a method that sends a greeting
Spring Initializr creates a class with the main() method to bootstrap your Spring application. In this tutorial, we’ll add the sayHello() method directly to this class.
Add the sayHello() method with all of the necessary annotations and imports so that the file looks like this:
The sayHello() method takes the name parameter and returns the word Hello combined with the parameter value. Everything else is handled by adding Spring annotations:
The @RestController annotation marks the SpringBootTutorialApplication class as a request handler (a REST controller).
Run your Spring application
By default, IntelliJ IDEA shows your running Spring Boot application in the Run tool window.
This is the default generic response. You can provide a parameter in your web request to let the application know how to greet you properly. For example, try http://localhost:8080/hello?myName=Human.
Add a home page
The created Spring Boot application has one endpoint available at /hello. However, if you open the root context of your application at http://localhost:8080/, you will get an error because there is no root resource defined. Let’s add a static HTML home page with links to your endpoint.
Modify the default template or replace it with the following HTML code:
Создание приложений с Spring Boot
Этот урок показывает пример того, как Spring Boot помогает вам ускорить и облегчить разработку приложений. Из учебных материалов вы увидите случаи использования Spring Boot. Если вы хотите создать проект на его основе, то посетите Spring Initializr, заполните онформацию о проекте, выберите опции и вы сможете загрузить файл сборки Maven, либо Gradle, либо как проект в виде zip-файла.
Что вы создадите
Вы создадите простое web-приложение с Spring Boot и добавите в него несколько полезных сервисов.
Что вам потребуется
Как проходить этот урок
Как и большинство уроков по Spring, вы можете начать с нуля и выполнять каждый шаг, либо пропустить базовые шаги, которые вам уже знакомы. В любом случае, вы в конечном итоге получите рабочий код.
Чтобы начать с нуля, перейдите в Настройка проекта.
Настройка проекта
Для начала вам необходимо настроить базовый скрипт сборки. Вы можете использовать любую систему сборки, которая вам нравится для сборки проетов Spring, но в этом уроке рассмотрим код для работы с Gradle и Maven. Если вы не знакомы ни с одним из них, ознакомьтесь с соответсвующими уроками Сборка Java-проекта с использованием Gradle или Сборка Java-проекта с использованием Maven.
Создание структуры каталогов
Создание файла сборки Gradle
Ниже представлен начальный файл сборки Gradle. Файл pom.xml находится здесь. Если вы используете Spring Tool Suite (STS), то можете импортировать урок прямо из него.
Spring Boot gradle plugin предоставляет множество удобных возможностей:
Узнайте, что вы можете делать с Spring Boot
Spring Boot предлагает быстрый путь для создания приложений. Он просматривает ваш classpath и бины, которые вы сконфигурировали, делает предположения о том, что нехватает и добавляет их. С Spring Boot вы можете сконцентрироваться больше на решении бизнес задач и меньше на инфраструктуру.
Это лишь несколько примеров, которые предоставляет автоманическая настройка Spring Boot. В то же время, Spring Boot не заработает с вашими настройками. Например, если Thymeleaf в вашем classpath, то Spring Boot добавит SpringTemplateEngine в ваш контекст приложения автоматически. Но если вы определите свой собственный SpringTemplateEngine с вашими настройками, то Spring Boot не добавит его. Это останется под вашим контролем и потребует от вас немного усилий.
Создание простого web приложения
Теперь вы можете создать web контроллер для простого web приложения.
Создание Application класса
Здесь вы создаете Application класс с компонентами:
Метод main() используется Spring Boot методом SpringApplication.run() для запуска приложения. Вы обратили внимание, что нет ни одной строчки на XML? Файла web.xml нет вообще. Это приложение на 100% из чистой Java и вы ничего не делали для настройки какого-либо инструмента или инфраструктуры.
Метод run() возвращает ApplicationContext и этому приложению отдаются все бины, которые были созданы вашим приложением или автоматически добавлены благодаря Spring Boot. Метод сортирует бины и печатает их имена.
Запуск приложения
Для запуска приложения выполните:
Если вы используете Maven, то:
Вы должны увидеть примерно такое:
Добавление сервисов бизнес-уровня
Если вы создаете web-сайт для вашего бизнеса, то вам скорее всего необходимо добавить некоторые сервисы для управления. Spring Boot предоставляет несколько таких «из коробки» в одном из своих модулей, таких как состояние, аудит, бины и другие.
Добавьте это в список зависимостей вашего файла сборки:
Если вы используете Maven, то добавьте это в список зависимостей:
Затем перезапустите приложение:
Если вы используете Maven, то:
Вы увидите новый набор RESTful точек выхода, добавленных в приложение. Это сервисы управления, предоставленные Spring Boot:
это легко проверить по состоянию приложения:
Вы можете попытаться вызвать завершение работы через curl:
Т.к. мы не включили его, запрос блокирован, потому что его не существует.
Просмотр Spring Boot starters
Последний пример показал как Spring Boot упрощает инициализацию бинов, о которых вы не знаете, что они вам нужны. И он показал, как подклюсить удобные для управления сервисы.
ко всему прочему, Spring Boot поддерживает Groovy, позволяя вам создавать Spring MVC приложения в небольшом и единственном файле.
Создайте новый файл app.groovy и поместите в него приведенный ниже код:
Давайте проверим, что получилось:
Spring Boot динамически добавляет аннотации к вашему коду и использует Groovy Grape для подтягивания необходимых для запуска приложения библиотек. Смотрите документацию, если хотите копнуть шлубже.
Поздравляем! Вы только что создали простое web приложени с использованием Spring Boot и изучили как нарастить ваш темп разработки. вы также настроили некоторые удобные сервисы. Это только малая часть того, что может делать Spring Boot.
Tutorial: Explore Spring support features
This tutorial expands on Tutorial: Create your first Spring application to show how IntelliJ IDEA can help you write code, analyze your Spring application, and manage it at runtime. The tutorial assumes that you start with a simple Spring Boot Maven project generated with Spring Intializr. It should already have the Spring Boot Starter Web dependency for building web applications.
This tutorial guides you through steps that cover the following:
Add dependencies for JPA and H2 that enable your Spring application to store and retrieve relational data
Write and examine your code
Run your application and execute HTTP requests
Add Spring Boot Actuator for advanced health monitoring and endpoint analysis
Add Spring Boot Developer Tools for faster application updates
Add dependencies for JPA and H2
The Spring Data JPA module provides support for data access using the Java Persistence API (JPA).
H2 is a fast in-memory SQL database written in Java.
Open the pom.xml file in your project root directory.
In the Maven Artifact Search dialog, find and add the necessary Maven dependencies:
Alternatively, you can add these dependencies to pom.xml manually:
Click in the popup or press Ctrl+Shift+O to load the updated project structure.
Create a JPA entity that will be stored in the database
To define the data model for your Spring application, create a JPA entity. The application will create and store Customer objects that have an ID, a first name, and a last name.
Modify the default template or replace it with the following Java code:
Create a repository interface
Spring Data JPA will create a repository implementation from this interface at runtime.
Modify the default template or replace it with the following Java code:
This repository works with Customer entities and Integer IDs. It also declares the findCustomerById() method. Spring Data JPA will derive a query based on this method’s signature, which will select the Customer object for the specified ID. You can try adding other methods to see how IntelliJ IDEA provides completion suggestions based on available JPA entities (in this case, the Customer class).
Create a web controller
A controller handles HTTP requests for your Spring application. The application will use the /add endpoint to add Customer objects to the database, the /list endpoint to fetch all Customer objects from the database, and the /find/
Modify the default template or replace it with the following Java code:
Here is what each Spring annotation means:
The @RequestParam annotations map the method parameters to the corresponding web request parameters.
The @GetMapping(«/find/
The @PathVariable annotation maps the value in place of the id variable from the URL to the corresponding method parameter.
Run your application and execute requests
By default, IntelliJ IDEA shows your running Spring Boot application in the Run tool window.
The Console tab shows the output of Spring log messages. By default, the built-in Apache Tomcat server is listening on port 8080.
Open a web browser and go to http://localhost:8080/list. You should see your application respond with an empty list [ ] because you don’t have any customers in the database.
To add customers, you need to send a POST request to the /add endpoint with request parameters that specify the first and last name. IntelliJ IDEA has an HTTP client built into the editor to compose and execute HTTP requests.
In the request file, compose the following POST request:
IntelliJ IDEA opens the Run tool window and prints both the request and the response:
Open the HTTP requests file again and compose a GET request to fetch all customers:
IntelliJ IDEA provides completion suggestions for the request method and body, locations, and available endpoints.
Execute the GET request to retrieve all of the customers:
Try running more POST requests to add other customers. Each one will get a unique ID. Then compose and execute a GET request to return a customer with a specific ID. For example:
Add Spring Boot Actuator
Spring Boot Actuator adds a number of endpoints that help you monitor and manage your application. This enables IntelliJ IDEA to expose the application’s health information and all request mappings available at runtime.
Open the pom.xml file in your project root directory.
In the Maven Artifact Search dialog, find and add the Spring Boot Starter Actuator dependency: org.springframework.boot:spring-boot-starter-actuator
Alternatively, you can add the dependency manually:
Click in the popup or press Ctrl+Shift+O to load the updated project structure.
Restart your Spring application and open the Actuator tab in the Services tool window.
Open the Health tab to monitor the status of your application.
Open the Mappings tab to interact with request mapping endpoints.
By default, it shows all endpoints, including those provided by libraries, such as the Spring Boot Actuator itself. Click the endpoint path to run the corresponding request directly, generate and open it in an HTTP request file to modify and execute when you need it, or open the endpoint URL in a web browser if it’s a GET request.
This tab in the Services tool window shows the endpoints available at runtime, not necessarily all request mappings declared in your code. To see the endpoints that are actually declared in your code, use the Endpoints tool window ( View | Tool Windows | Endpoints ).
Add Spring Boot Developer Tools
When you make a change in your code, you need to rerun the whole project: shut down the application with all its dependencies, rebuild the code, start the application with the new code. IntelliJ IDEA provides a way to restart just your Spring application context without having to also restart all the external library contexts. This can save time in a large project with a lot of dependencies, especially for debugging and tweaking your code. You can also update static and template resources in a running application.
This functionality is based on the spring-boot-devtools module.
Open the pom.xml file in your project root directory.
In the Maven Artifact Search dialog, find and add the Spring Boot Developer Tools dependency: org.springframework.boot:spring-boot-devtools
Alternatively, you can add the dependency manually:
Click in the popup or press Ctrl+Shift+O to load the updated project structure.
From the main menu, select Run | Edit Configurations and select the SpringBootTutorialApplication configuration.
Set both the On ‘Update’ action and On frame deactivation options to Update classes and resources and click OK to apply the changes.
Restart your Spring application.
Your application will work the same, but now whenever you make a change in your source code or resources, you can trigger the updates. Either select Run | Debugging Actions | Update ‘SpringBootTutorialApplication’ application Ctrl+F10 from the main menu or change focus from IntelliJ IDEA to another application, for example, the web browser. This will update all the classes and resources for your application and restart your application if necessary.
Change the home page
To demonstrate how application updates work, let’s expose the /add and /list HTTP endpoints on the home page. For information about adding a home page, see Add a home page.
Введение в Spring Boot: создание простого REST API на Java
Из-за громоздкой конфигурации зависимостей настройка Spring для корпоративных приложений превратилась в весьма утомительное и подверженное ошибкам занятие. Особенно это относится к приложениям, которые используют также несколько сторонних библиотек
Каждый раз, создавая очередное корпоративное Java-приложение на основе Spring, вам необходимо повторять одни и те же рутинные шаги по его настройке:
1. Представляем Spring Boot
Авторы Spring решили предоставить разработчикам некоторые утилиты, которые автоматизируют процедуру настройки и ускоряют процесс создания и развертывания Spring-приложений, под общим названием Spring Boot
Spring Boot — это полезный проект, целью которого является упрощение создания приложений на основе Spring. Он позволяет наиболее простым способом создать web-приложение, требуя от разработчиков минимум усилий по его настройке и написанию кода
2. Особенности Spring Boot
Spring Boot обладает большим функционалом, но его наиболее значимыми особенностями являются: управление зависимостями, автоматическая конфигурация и встроенные контейнеры сервлетов
2.1. Простота управления зависимостями
Чтобы ускорить процесс управления зависимостями, Spring Boot неявно упаковывает необходимые сторонние зависимости для каждого типа приложения на основе Spring и предоставляет их разработчику посредством так называемых starter-пакетов (spring-boot-starter-web, spring-boot-starter-data-jpa и т.д.)
Starter-пакеты представляют собой набор удобных дескрипторов зависимостей, которые можно включить в свое приложение. Это позволит получить универсальное решение для всех, связанных со Spring технологий, избавляя программиста от лишнего поиска примеров кода и загрузки из них требуемых дескрипторов зависимостей (пример таких дескрипторов и стартовых пакетов будет показан ниже)
Например, если вы хотите начать использовать Spring Data JPA для доступа к базе данных, просто включите в свой проект зависимость spring-boot-starter-data-jpa и все будет готово (вам не придется искать совместимые драйверы баз данных и библиотеки Hibernate)
Если вы хотите создать Spring web-приложение, просто добавьте зависимость spring-boot-starter-web, которая подтянет в проект все библиотеки, необходимые для разработки Spring MVC-приложений, таких как spring-webmvc, jackson-json, validation-api и Tomcat
Другими словами, Spring Boot собирает все общие зависимости и определяет их в одном месте, что позволяет разработчикам просто использовать их, вместо того, чтобы изобретать колесо каждый раз, когда они создают новое приложение
Следовательно, при использовании Spring Boot, файл pom.xml содержит намного меньше строк, чем при использовании его в Spring-приложениях
Обратитесь к документации, чтобы ознакомиться со всеми Spring Boot starter-пакетами
2.2. Автоматическая конфигурация
Второй превосходной возможностью Spring Boot является автоматическая конфигурация приложения
После выбора подходящего starter-пакета, Spring Boot попытается автоматически настроить Spring-приложение на основе добавленных вами jar-зависимостей
Например, если вы добавите Spring-boot-starter-web, Spring Boot автоматически сконфигурирует такие зарегистрированные бины, как DispatcherServlet, ResourceHandlers, MessageSource
Если вы используете spring-boot-starter-jdbc, Spring Boot автоматически регистрирует бины DataSource, EntityManagerFactory, TransactionManager и считывает информацию для подключения к базе данных из файла application.properties
Если вы не собираетесь использовать базу данных, и не предоставляете никаких подробных сведений о подключении в ручном режиме, Spring Boot автоматически настроит базу в памяти, без какой-либо дополнительной конфигурации с вашей стороны (при наличии H2 или HSQL библиотек)
Автоматическая конфигурация может быть полностью переопределена в любой момент с помощью пользовательских настроек
2.3. Встроенная поддержка сервера приложений — контейнера сервлетов
Каждое Spring Boot web-приложение включает встроенный web-сервер. Посмотрите на список контейнеров сервлетов, которые поддерживаются «из коробки»
Разработчикам теперь не надо беспокоиться о настройке контейнера сервлетов и развертывании приложения на нем. Теперь приложение может запускаться само, как исполняемый jar-файл с использованием встроенного сервера
Если вам нужно использовать отдельный HTTP-сервер, для этого достаточно исключить зависимости по умолчанию. Spring Boot предоставляет отдельные starter-пакеты для разных HTTP-серверов
Создание автономных web-приложений со встроенными серверами не только удобно для разработки, но и является допустимым решением для приложений корпоративного уровня и становится все более полезно в мире микросервисов. Возможность быстро упаковать весь сервис (например, аутентификацию пользователя) в автономном и полностью развертываемом артефакте, который также предоставляет API — делает установку и развертывание приложения значительно проще
3. Требования к установке Spring Boot
Для настройки и запуска Spring Boot приложений требуется следующее:
4. Создание Spring Boot приложения
Теперь давайте перейдем к практике и реализуем очень простой REST API для приема платежей, используя возможности Spring Boot
4.1. Создание web-проекта с использованием Maven
Создайте Maven-проект в используемой вами IDE, назвав его SpringBootRestService
Обязательно используйте версию Java 8+, поскольку Spring Boot не работает с более ранними версиями
4.2. Конфигурация pom.xml
Вторым шагом необходимо настроить Spring Boot в файле pom.xml
Все приложения Spring Boot конфигурируются от spring-boot-starter-parent, поэтому перед дальнейшим определением зависимостей, добавьте starter-parent следующим образом:
Т.к. мы создаем REST API, то необходимо в качестве зависимости использовать spring-boot-starter-web, которая неявно определяет все остальные зависимости, такие как spring-core, spring-web, spring-webmvc, servlet api, и библиотеку jackson-databind, поэтому просто добавьте в pom.xml следующее:
Теперь следующие jar-библиотеки автоматически импортируются в ваш проект:
Следующий шаг — добавляем Spring Boot плагин:
Последний шаг — сделать так, чтобы Maven генерировал исполняемый jar-файл при сборке:
Ниже приведен полный файл pom.xml:
Как видите, используя одну зависимость, мы можем создать полностью функциональное web-приложение
4.3. Создание ресурсов REST
Теперь мы собираемся создать контроллер платежей вместе с POJO-классами для запросов и ответов
Напишем класс запроса платежа:
А также класс, обрабатывающий базовый ответ, возвращаемый нашим сервисом:
А теперь создадим контроллер:
4.4. Создание основного класса приложения
Этот последний шаг заключается в создании класса конфигурации и запуска приложения. Spring Boot поддерживает новую аннотацию @SpringBootApplication, которая эквивалентна использованию @Configuration, @EnableAutoConfiguration и @ComponentScan с их атрибутами по умолчанию
Таким образом, вам просто нужно создать класс, аннотированный с помощью @SpringBootApplication, а Spring Boot включит автоматическую настройку и отсканирует ваши ресурсы в текущем пакете:
5. Развертывание приложения Spring Boot
Теперь давайте воспользуемся третьей замечательной особенностью Spring Boot — это встроенный сервер. Все, что нам нужно сделать — это создать исполняемый jar-файл с помощью Maven и запустить его, как обычное автономное приложение:
Наш REST API запущен и готов обслуживать запросы через порт 8080 (по умолчанию)
В этой статье мы рассмотрели возможности Spring Boot и создали полностью рабочий пример с использованием встроенного сервера
В переводе обновили информацию:
UPDATE:
Как заметил Lure_of_Chaos, теперь уже все можно сделать автоматически через SPRING INITIALIZR. Причем не выходя из любимой JetBrains IntelliJ IDEA.