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

Если вы читали популярные пособия, например, «Паттерны проектирования» Kathy Sierra, вам не нужно объяснять, что веб приложения это не та сфера, где требуется изобретать велосипед.

В веб-услугах и разработки в YuSMP Group используем современные технологии создания web приложений на Java в IDE. Мы с радостью поделимся ими.

Стек технологий

Консольное приложение Java потребует использование фреймворков. Один из самых подходящих для этой задачи — Spring Boot. А в качестве среды для разработки будет оптимально применить Gradle Project.

Что нужно использовать:

  • Spring Web — необходим для того, чтобы создать наш сайт на Java. Он способен эффективно решать задачи, связанные с разработкой приложений для бизнеса.
  • Spring Data JPA — удобный репозиторий, который даст нам нужные интерфейсы для доступа к данным сайта.
  • PostgreSQL Driver — представляет собой драйвер, через который можно получать доступы к базам данных. Этот стандарт позволяет наладить обмен между нашей платформой на Джава и СУБД, которые будут использованы в работе.
  • Lombok — незаменимый инструмент создании web приложения на Java в IDE. C его помощью можно оптимизировать код и расширить функциональность.

Первый шаг

Нам потребуется IDE, возьмем самую удобную — Gradle Project. Там создадим наш build.gradle. Простой способ сделать это в файле новый проект Spring Initializr.

Начнем разработку с объявления класса main.

Кодовый образец

Для тестирования работоспособности создадим элементарный контроллер. Это позволит проверить, что в проекте на этой стадии нет ошибок.

Иллюстрация кода

Затем запустим приложение и убедимся в его работе.

База данных

Для размещения информации будем использовать Docker. Эта база данных имеет весомые преимущества за счет поддержки в любой ОС и удобства хранения.

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

doker

Упрощаем код через Lombok

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

Для этого потребуется дата-класс под названием «книга». К нему будет относится несколько полей. Они будут неизменяемыми, обладать конструктором и getters.

Благодаря нашей IDE, методы доступа и конструктор могут быть сгенерированы автоматическим путем. Однако гораздо проще применять Ломбок, чтобы оптимизировать количество строк кода.

Базы данных

Для них необходимо будет использовать Spring Data JPA. Как мы помним, он уже был добавлен предварительно. Чтобы создать таблицу в базе данных потребуется будет описать класс Entity. А для сохранения и загрузки нужный записей в нашу таблицу необходимо описать класс Repository.

table код

Это пример эффективного использования Ломбок. Через Data будут добавлены setters и getters. А два конструктора — конструкторы с параметрами и без них, как и следует из названия.

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

Таким образом мы получаем полноценное CRUD приложение, которое в дальнейшем будет удобно масштабировать.

Затем создаем интерфейс.

book service

Далее этот интерфейс требуется реализовать таким образом:

код пример

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

Теперь нам нужно инициализировать финал-поле bookRepository. Сделать это несложно:

Демонстрационный код

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

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

Библиотека

Мы используем MapStruct. Для чего она нужна? Дело в том, что одного класса BookEntity не хватит для полноценной работы web приложения. Данный класс относится к слою Data Access Object. Нам потребуется создать еще один класс — Book, которые будет относится к сервисному слою.

Так при перекладывании данных из одного класса в другой код будет однотипным, то нам потребуется создать mapper. Он будет отвечать за переход данных между объектами.

MapStruct также потребуется добавить в наш проект.

dependencies

Чтобы все работало корректно, потребует создать интерфейс. А в нем — указать методы конвертации одного класса в другой.

mapper

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

Это были первые шаги по созданию по созданию web приложения на Java в IDE. Больше подобных статей вы найдете в блоге студии web-разработки YuSMP Group. Следите за проектами, которые мы создали, и узнавайте больше интересного из мира ИТ.