Взгляните на Spring Boot, чтобы узнать, что он может предложить

Несколько дней назад я разговаривал с коллегой, который работает над веб-проектом, используя Spring Boot и Hibernate.

Я был поражен тем, что кто-то все еще может использовать технологии Java для веб-приложений в наши дни, когда существует множество веб-фреймворков, с которыми проще работать и которые обеспечивают почти такую ​​же производительность.

Я сам начал свою веб-разработку на JavaServer Pages (JSP), прежде чем перейти на PHP более пяти лет назад из-за гибкости и небольшого количества времени, необходимого для создания функционального приложения на PHP по сравнению с JSP.

Тем не менее, этого моего коллеги больше беспокоят корпоративная приемлемость, стандарты, интеграция и безопасность.

Итак, я решил взглянуть на Spring Boot, чтобы узнать, что он может предложить. Хотя вначале это казалось довольно запутанным, это не так сложно, как я думал.

Что мне в нем не нравится, так это аннотации. К счастью, мне не нужно запоминать все это, мне просто нужно знать их функции и иметь шпаргалку по аннотациям на моем рабочем столе.

Короче говоря, просмотрев документацию и несколько примеров кода в Интернете, я смог создать REST API, хотя это не так быстро, как я мог бы сделать в Laravel.

В этом руководстве я покажу вам, как создать REST API в Spring Boot.

Что мы будем строить

Мы будем создавать REST API для сообщений в блогах. Он позволяет искать блог, получать все блоги, получать отдельный блог, создавать блог, обновлять и удалять существующий блог.

Требования

  • Хорошее понимание языка программирования Java.
  • Базовые знания Maven.

Необходимые инструменты

Начиная

Существует как минимум три способа создания приложения Spring Boot (например, инициализатор Spring Boot, инструмент командной строки (CLI) и Maven с IDE). Я расскажу только о том, как создать приложение с помощью Maven.

Откройте IntelliJ IDEA и нажмите «Создать новый проект».

Выберите «Maven Project».

Заполните необходимую информацию.

GroupId - уникальное название вашей организации (в большинстве случаев люди используют обратное доменное имя своей компании, например com.mycompany), ArtifactId - уникальное имя проекта, а Version - номер версии проекта.

После завершения настройки у вас должен быть пустой проект с файлом конфигурации Maven pom.xml.

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

На данный момент все, что нам нужно, это Spring Boot. Скопируйте и вставьте приведенный ниже код в файл pom.xml.

  • Тег <parent> указывает Maven наследовать свойства spring-boot-starter-parent, такие как номер порта, конфигурации и т. Д. Все это предоставляется Spring.
  • Тег <dependencies> содержит все зависимости проекта. На данный момент у нас есть только одна зависимость, spring-boot-starter-web. В законченном приложении может быть больше, например MySQL, сокет, библиотека JSON и т. Д.
  • <build> содержит плагины сборки, например spring-maven-plugin.

Обновите репозиторий Maven, чтобы загрузить зависимости.

Мы закончили настройку. Приступим к кодированию

Главный класс

Для запуска любого Java-приложения у вас должен быть хотя бы один «Главный класс». Создайте класс и назовите его MainApplicationClass.java.

Убедитесь, что ваш класс находится внутри пакета, иначе он может не работать. Также обратите внимание на имя моего пакета (me.salisuwy), которое может отличаться от вашего.

Добавьте к классу аннотацию @SpringBootApplication, чтобы сделать его приложением Spring Boot. Теперь вы можете запустить приложение.

Поздравляем, вы создали приложение Spring Boot.

Эй, подожди минутку. Почему localhost:8080 показывает ошибку? Это потому, что у нас нет контроллера для обработки наших HTTP-запросов.

Контроллер, C в MVC

Контроллер обрабатывает все входящие HTTP-запросы от пользователя и возвращает соответствующий ответ. На некоторых языках файлы маршрутов сопоставляют HTTP-запросы с соответствующим контроллером. Давайте создадим контроллер.

Создать BlogController.java.

  • Аннотация @RestController сообщает Spring, что этот класс является контроллером.
  • Аннотация @RequestMapping(“/”) означает, что любой запрос (GET, POST, PUT и т. Д.) К корню URL(/) будет обрабатываться методом index(). Ответ имеет тип String.

Другими вариантами аннотации @RequestMapping являются @GetMapping, @PostMapping и т. Д. Для обработки запросов GET и POST соответственно.

Что дальше

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

Исходный код

Полный исходный код на GitHub.