- Get link
- X
- Other Apps
- Get link
- X
- Other Apps
In English
Всем привет! В этом посте мы сосредоточимся на одной простой задаче: быстро создать веб-приложение на Spring Boot в IntelliJ IDEA Community Edition.
Те, у кого установлена версия EAP или Ultimate, могут обратиться к этому мануалу, который учитывает встроенный в IDE создатель проекта при помощи Spring Initializr. Менее удачливым людям (например, мне) придется сделать немного больше, но при этом мы узнаем немного больше о создании проектов при помощи Spring Boot и Maven. И, честно говоря, это не намного больше, чем использование Initializr в крутых версиях IntelliJ.
Существует два подхода к созданию проекта на Spring Boot. Один из них - использовать веб-приложение Spring Initializr для генерации шаблона проекта - это по-идее проще, а другой - вручную добавить зависимости в пустой Maven-проект.
Лично я думаю, что оба подхода занимают примерно одинаковое количество времени, поэтому выбирайте любой из них - он не потратит кучу Вашего драгоценного времени. Чтобы использовать первый подход, начните с шага 1, а если вы хотите использовать второй, то можно сразу перейти к шагу 4.
Ну что ж, начнем!
Куда-нибудь распаковываем его и видим следующее:
Дальше просто щелкаем Next пока проект окончательно не импортируется. Да, все так просто.
Чтобы удостовериться что оно работает, придется сделать его несколько более интерактивным...
Как всегда, готовый проект можно скачать ТУТ.
Всем привет! В этом посте мы сосредоточимся на одной простой задаче: быстро создать веб-приложение на Spring Boot в IntelliJ IDEA Community Edition.
Те, у кого установлена версия EAP или Ultimate, могут обратиться к этому мануалу, который учитывает встроенный в IDE создатель проекта при помощи Spring Initializr. Менее удачливым людям (например, мне) придется сделать немного больше, но при этом мы узнаем немного больше о создании проектов при помощи Spring Boot и Maven. И, честно говоря, это не намного больше, чем использование Initializr в крутых версиях IntelliJ.
Существует два подхода к созданию проекта на Spring Boot. Один из них - использовать веб-приложение Spring Initializr для генерации шаблона проекта - это по-идее проще, а другой - вручную добавить зависимости в пустой Maven-проект.
Лично я думаю, что оба подхода занимают примерно одинаковое количество времени, поэтому выбирайте любой из них - он не потратит кучу Вашего драгоценного времени. Чтобы использовать первый подход, начните с шага 1, а если вы хотите использовать второй, то можно сразу перейти к шагу 4.
Ну что ж, начнем!
Шаг 1. Создаем maven-проект
- Все начинается с проекта. Давайте создадим его на приветственном экране Intellij:
- Выберите Maven из списка типов проектов. Щелкните Next.
- Теперь надо придумать GroupId и ArtifactId для проекта. Смотрим эту страницу из официальных мануалов Maven чтобы узнать как их выбрать. Обычно GroupId это Ваш (или Вашей фирмы) домен в обратном порядке. Если нет ни того, ни другого - не проблема, используем имя или ник, например com.ivanivanov. ArtifactId - имя проекта.
- Выбираем имя проекта в IDE и где он будет находиться на жестком диске. Я обычно выбираю имя проекта такое же как ArtifactId чтобы не было путаницы.
- Вот и все! Проект готов. Почему мы используем Maven? Во-первых, это позволит нам подтянуть любую зависимость просто введя ее GroupId и ArtifactId, во вторых в таком проекте автоматически создается очень удобная структура папок которая является де-факто стандартов для Java приложение. Почитать об этой структуре можно тут.
Шаг 2. Добавим зависимости Spring boot
- Заходим на https://projects.spring.io/spring-boot/ и копируем нужные зависимости из секции Quick Start.
- Вставляем их в файл pom.xml в корне проекта и включаем авто-импорт зависимостей чтобы не жать кнопку Импорт при каждом изменении помника.
Шаг 3. Создаем минимальный набор классов
- Теперь, когда зависимости подключены, понадобится создать минимально жизнеспособный код, чтобы все эти библиотеки работали. Прежде всего, последуем бест практисам и создадим корневой пакет в каталоге src/main/java, названный именем проекта.
|
- Spring Boot запускает сервлет-контейнер Tomcat и Ваше приложение при запуске этого метода:
public static void main(String[] args) {
Так создадим класс в котором он будет содержаться:
- Вставьте этот код в новый класс:
Не забываем аннотацию @SpringBootApplication! Благодаря ней все и работает.
Щелкните дважды чтобы выбрать весь код 1234567@SpringBootApplication
public
class
Application {
public
static
void
main(String[] args) {
SpringApplication.run(Application.
class
, args);
}
}
- Как уже видно, названия классов подсветились красным потому что они не импортированы:
Чтобы автоматически импортировать зависимость на класс в IntelliJ IDEA, щелкните на красном имени класса и нажмитеAlt+Enter:
- Вот и все! Минималистичное Spring boot приложение готово. Теперь можно пройти к шагу 6
Шаг 4. Используем Spring Initializr
В использовании Spring Initializr все просто и понятно: заходим на сайт, настраиваем проект и получаем Zip архив по щелчку на гигантскую зеленую кнопку "Generate".Куда-нибудь распаковываем его и видим следующее:
Шаг 5. Импортируем сгенерированный проект в IntelliJ IDEA
- Вместо создания проекта, кликаем на Import project.
- Первые 2 окна важны: нужно указать куда был распакован проект и указать Maven в качестве модели импорта.
Дальше просто щелкаем Next пока проект окончательно не импортируется. Да, все так просто.
Шаг 6. Создаем конфигурацию запуска
- Чтобы запустить наше Spring Boot приложение, надо создать конфигурацию запуска. Щелкаем Edit configurations...
- Создаем новую конфигурацию типа Application. Называем ее как-нибудь и выбираем наш класс с методом main():
- Вот и все. По щелчку на Run (или сочетанию клавиш Shift+F10) увидим что приложение Spring boot запустилось на http://localhost:8080:
Чтобы удостовериться что оно работает, придется сделать его несколько более интерактивным...
Step 7. (Опционально) Добавим как минимум 1 контроллер
- Контроллеры - это часть архитектурного паттерна MVC. Spring позволяет запросто создавать контроллеры для веб-приложений, навешивая аннотации на класс с методами. Создадим новый пакет для контроллеров в корневом пакете, а также класс для нового контроллера:
Щелкните дважды чтобы выбрать весь код 12345678910@Controller
public
class
HelloController {
@RequestMapping
(
"/"
)
@ResponseBody
String hello() {
return
"Hello World!"
;
}
}
Как всегда, готовый проект можно скачать ТУТ.
Дополнение
Для полноты рассказа покажу, как добавить любые зависимости в Ваш проекта при помощи Maven. Это необязательно для создания Spring Boot приложения, но это поможет понять начинающему, что делать дальше.- Ищем <имя библиотеки> maven.
- Обычно все выбирают либо последнюю стабильную версию (5.0.0 в данном случае) либо самую используемую.
- Копируем текст в pom.xml, а именно в секцию <dependencies>.
Comments
спасибо, первый раз столкнулся со spring и не знал что делать, а тут все по полочкам
ReplyDeleteне все не хватает spring-web в pom.xml
DeleteИсусий гайд. Заслуживает быть в первой строке выдачи в гугле :)
ReplyDeleteВыше всех похвал :-) Спасибо!
DeleteПо-моему в IntelliJ есть встроенный функционал Spring Initializr (без сайта)
ReplyDeleteTrue dat, но он появляется только в Ultimate.
DeleteСпасибо огромное! Этот гайд очень нужен и актуален.
ReplyDeleteОгромное спасибо!
ReplyDeleteС удовольствием почитал бы про создание веб-приложения с шаблонизаторами.
Спасибо большое за статью! Всё просто и понятно.
ReplyDeleteОтличная статья, помогла! Одно замечание: в pom.xml стоило бы добавить
ReplyDeleteorg.springframework.boot
spring-boot-maven-plugin
Всё делаю по гайдам таким, всё равно каждая зависимость красным светится.
ReplyDeleteОтсутствуют картинки(
ReplyDeleteна 6ом шаге при запуске получил ошибку:
ReplyDeleteNo active profile set, falling back to default profiles: default
подскажите чего не хватает? сделал все по шагам слово в слово
На шаге 2 по адресу https://projects.spring.io/spring-boot/ указанного XML для зависимостей не нашел, я новичок в этом напишите пожалуйста актуальную ссылку
ReplyDeleteThis comment has been removed by the author.
ReplyDelete