Научная статья на тему 'ОСНОВНЫЕ ТЕХНОЛОГИИ И ФРЕЙМВОРКИ ДЛЯ БЕКЕНД-РАЗРАБОТКИ НА JAVA'

ОСНОВНЫЕ ТЕХНОЛОГИИ И ФРЕЙМВОРКИ ДЛЯ БЕКЕНД-РАЗРАБОТКИ НА JAVA Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
260
41
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
Java / серверная разработка / бекенд-разработка / фреймворки / Spring Boot / Hibernate / Apache Struts / JHipster / Apache Kafka / объектно-реляционное отображение / Model-View-Controller / приложения с полным стеком / микросервисы / веб-приложения / Java / backend development / frameworks / Spring Boot / Hibernate / Apache Struts / JHipster / Apache Kafka / Object-Relational Mapping / Model-View-Controller / full-stack applications / microservices / web applications

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Здитовец А. Л.

В данной научной статье подробно рассматриваются основные технологии и фреймворки, используемые при разработке серверной части Java, с акцентом на Spring Boot, Hibernate, Apache Struts и JHipster. В ней содержится подробное описание каждой технологии, выделяются их уникальные характеристики, варианты использования, преимущества и структурные компоненты, а также приведена сравнительная таблица. Spring Boot известна своей философией "соглашение важнее конфигурации" и способностью разрабатывать надежные приложения корпоративного уровня. Hibernate, как давнее решение для объектно-реляционного отображения (ORM) на Java, устраняет разрыв между объектно-ориентированными моделями предметной области и системами реляционных баз данных, тем самым становясь незаменимым инструментом в приложениях с интенсивным использованием баз данных. Apache Struts, оснащенный богатым набором библиотек тегов и надежной конструкцией Model-View-Controller (MVC), зарекомендовал себя как надежный выбор для веб-приложений. JHipster, генератор для инициализации проектов, облегчает быстрое создание полнофункциональных приложений, используя современные инструменты и практики. Apache Kafka, высокопроизводительная платформа потоковой передачи событий с открытым исходным кодом. В статье подчеркивается идея о том, что выбор технологии должен соответствовать требованиям проекта, опыту команды и соображениям долгосрочного технического обслуживания. Цель статьи помочь разработчикам и заинтересованным сторонам сделать осознанный выбор среди этих распространенных технологий и фреймворков для разработки серверной части Java.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

MAJOR TECHNOLOGIES AND FRAMEWORKS FOR BACKEND DEVELOPMENT IN JAVA

This scientific article provides a detailed examination of the primary technologies and frameworks used in Java backend development, with a focus on Spring Boot, Hibernate, Apache Struts, and JHipster. It offers a comprehensive description of each technology, highlighting their unique characteristics, use cases, benefits, and structural components, along with a comparative table. Spring Boot is known for its "convention over configuration" philosophy and its ability to develop reliable enterprise-level applications. Hibernate, as a longstanding Object-Relational Mapping (ORM) solution in Java, bridges the gap between object-oriented domain models and relational database systems, becoming an indispensable tool in database-intensive applications. Apache Struts, equipped with a rich set of tag libraries and a reliable Model-View-Controller (MVC) architecture, has proven to be a reliable choice for web applications. JHipster, a project initialization generator, facilitates the rapid creation of full-featured applications using modern tools and practices. Apache Kafka is a high-performance, open-source event streaming platform. The article emphasizes the importance of choosing a technology that aligns with project requirements, team expertise, and long-term technical maintenance considerations. The aim of the article is to assist developers and stakeholders in making informed choices among these prevalent technologies and frameworks for Java backend development.

Текст научной работы на тему «ОСНОВНЫЕ ТЕХНОЛОГИИ И ФРЕЙМВОРКИ ДЛЯ БЕКЕНД-РАЗРАБОТКИ НА JAVA»

УДК 62

Здитовец А.Л.

Capital.com, Польша Software Engineer Полоцк, Витебская область, Беларусь

ОСНОВНЫЕ ТЕХНОЛОГИИ И ФРЕЙМВОРКИ ДЛЯ БЕКЕНД-РАЗРАБОТКИ НА JAVA

Аннотация

В данной научной статье подробно рассматриваются основные технологии и фреймворки, используемые при разработке серверной части Java, с акцентом на Spring Boot, Hibernate, Apache Struts и JHipster. В ней содержится подробное описание каждой технологии, выделяются их уникальные характеристики, варианты использования, преимущества и структурные компоненты, а также приведена сравнительная таблица. Spring Boot известна своей философией "соглашение важнее конфигурации" и способностью разрабатывать надежные приложения корпоративного уровня. Hibernate, как давнее решение для объектно-реляционного отображения (ORM) на Java, устраняет разрыв между объектно-ориентированными моделями предметной области и системами реляционных баз данных, тем самым становясь незаменимым инструментом в приложениях с интенсивным использованием баз данных. Apache Struts, оснащенный богатым набором библиотек тегов и надежной конструкцией Model-ViewController (MVC), зарекомендовал себя как надежный выбор для веб-приложений. JHipster, генератор для инициализации проектов, облегчает быстрое создание полнофункциональных приложений, используя современные инструменты и практики. Apache Kafka, высокопроизводительная платформа потоковой передачи событий с открытым исходным кодом. В статье подчеркивается идея о том, что выбор технологии должен соответствовать требованиям проекта, опыту команды и соображениям долгосрочного технического обслуживания. Цель статьи - помочь разработчикам и заинтересованным сторонам сделать осознанный выбор среди этих распространенных технологий и фреймворков для разработки серверной части Java.

Ключевые слова:

Java, серверная разработка, бекенд-разработка, фреймворки, Spring Boot, Hibernate, Apache Struts, JHipster, Apache Kafka, объектно-реляционное отображение, Model-View-Controller, приложения с

полным стеком, микросервисы, веб-приложения.

Zdzitavets A.L.

Capital.com, Poland Software Engineer bachelor's degree Polotsk, Belarus

MAJOR TECHNOLOGIES AND FRAMEWORKS FOR BACKEND DEVELOPMENT IN JAVA

Abstract

This scientific article provides a detailed examination of the primary technologies and frameworks used in Java backend development, with a focus on Spring Boot, Hibernate, Apache Struts, and JHipster. It offers a comprehensive description of each technology, highlighting their unique characteristics, use cases, benefits, and structural components, along with a comparative table. Spring Boot is known for its "convention over configuration" philosophy and its ability to develop reliable enterprise-level applications. Hibernate, as a

longstanding Object-Relational Mapping (ORM) solution in Java, bridges the gap between object-oriented domain models and relational database systems, becoming an indispensable tool in database-intensive applications. Apache Struts, equipped with a rich set of tag libraries and a reliable Model-View-Controller (MVC) architecture, has proven to be a reliable choice for web applications. JHipster, a project initialization generator, facilitates the rapid creation of full-featured applications using modern tools and practices. Apache Kafka is a high-performance, open-source event streaming platform. The article emphasizes the importance of choosing a technology that aligns with project requirements, team expertise, and long-term technical maintenance considerations. The aim of the article is to assist developers and stakeholders in making informed choices among these prevalent technologies and frameworks for Java backend development.

Keywords:

Java, backend development, frameworks, Spring Boot, Hibernate, Apache Struts, JHipster, Apache Kafka, Object-Relational Mapping, Model-View-Controller, full-stack applications, microservices, web applications.

Введение

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

Java известна своей мощной возможностью «Write Once, Run Anywhere» (WORA), которая означает, что скомпилированный код Java или байт-код может работать на любой платформе, которая поддерживает совместимость с Java, избегая необходимости повторной компиляции. Этот атрибут особенно полезен в сценариях бекенд-разработки, где приложения требуют независимой от платформы работы и удовлетворяют разнообразным требованиям клиентов. Кроме того, надежность Java, интуитивно понятное использование, кроссплатформенные возможности и усиленные меры безопасности сделали его предпочтительным в отрасли, что привело к широкому внедрению в таких секторах, как банковское дело, розничная торговля, страхование, электронная коммерция, разработка приложений для Android и другие.

Кроме того, зрелая экосистема Java включает в себя широкий спектр библиотек, фреймворков и API-интерфейсов, предлагая разработчикам набор предварительно созданных компонентов, что способствует эффективной и ускоренной разработке. За прошедшие годы сообщество Java представило множество технологий и сред, каждая из которых наделена своими отличительными характеристиками и преимуществами, что делает создание серверной части Java адаптируемым и гибким процессом, который может соответствовать различным требованиям приложений [1].

В этой статье произведено подробное исследование некоторых из наиболее важных технологий и сред, используемых в бекенд-разработке части Java. К ним относятся сервлеты, JavaServer Pages (JSP), Spring Boot, Hibernate, Apache Struts и Apache Kafka. Для каждого из этих объектов рассмотрены их функциональные возможности, предоставлены соответствующие примеры и фрагменты кода, а также представлено их применение. Конечная цель — дать читателям всестороннее представление об этих инструментах и технологиях, тем самым способствуя принятию обоснованных решений в их инициативах по разработке бэкэнда.

Servlets и страницы JavaServer (JSP)

Servlets и JSP — это две фундаментальные технологии для разработки веб-приложений Java, которые стали частью ландшафта Java с конца 1990-х годов. Они используются для создания динамических

веб-приложений и составляют основу более сложных фреймворков и технологий в экосистеме Java. 1. Servlets

Servlets — это класс Java, используемый для расширения возможностей серверов, на которых размещаются приложения, доступ к которым осуществляется посредством модели запрос-ответ. Также это независимые от платформы серверные модули, которые можно использовать для расширения возможностей веб-сервера, предоставляя основанный на компонентах и независимый от платформы метод создания веб-приложений.

Servlets работают на стороне сервера, где они получают запрос от клиента (обычно веб-браузера), обрабатывают этот запрос и возвращают ответ клиенту. Этот ответ может быть: HTML-страницей, изображением или сообщением об ошибке. Servlets часто используются для реализации веб-приложений, включая как логику, так и пользовательский интерфейс [2].

Ниже предствлен базовый Servlet, который отвечает сообщением "Hello, World!":

impox" javax.servlet. Import ;jav ax. servlet.http.*; import java.io.*;

public class HelloWorld extends HttpServlet {

public void doGetiHttpServletRequest request, HttpServletResponse response) throws ServletException, IOExceptior { PrintWriter out = response.getWriterü; out.printlnt"Hello, World!1};

В этом примере метод doGet вызывается сервером (через сервисный метод), чтобы позволить обработать запрос GET. Метод GET позволяет клиенту получить документ или веб-страницу с сервера.

2. Страницы JavaServer (JSP)

JavaServer Pages (JSP) — это технология, используемая для разработки веб-страниц, поддерживающих динамическое содержимое и взаимодействующих с веб-приложениями. JSP построены на основе Java Servlets API и обеспечивают более естественный и привычный способ создания динамического HTML-контента.

Страница JSP состоит из тегов HTML и тегов JSP. Код Java встраивается в HTML-страницу с помощью тегов JSP. Когда клиент отправляет запрос на страницу JSP, веб-сервер сначала проверяет, нужно ли ему компилировать страницу. Если страницу необходимо скомпилировать или запрашивается обновленная страница, веб-сервер преобразует страницу JSP в Servlet и компилирует класс. Затем сервер загружает Servlet и выполняет его для создания динамического HTML, который отправляется клиенту.

Ниже предстален пример файла JSP, который отображает текущую дату и время:

page upoi = java. util. Date S6> <html> <head>

<title>Display Current Date & Time</title>

</head>

<body>

<h2>Current Date & Time: <9£= new DateO Sf></h2>

</body>

</html>

В этом примере <%= new Date() %> — это выражение JSP, которое заменяется текущей датой и

временем при запросе страницы.

Servlets и JSP образуют мощный дуэт для разработки веб-приложений на Java, но они также составляют основу для других более продвинутых сред, таких как Spring Boot и Apache Struts, которые будут рассмотрены далее.

Spring Boot

Spring Boot, проект, построенный на основе Spring Framework, радикально упрощает настройку и разработку приложений Spring. В нем используется взвешенный взгляд на платформу Spring и сторонние библиотеки, что позволяет разработчикам начинать создавать приложения с минимальной конфигурацией. Spring Boot получил широкое распространение благодаря простоте использования, высокой производительности и возможности создавать автономные приложения.

1. Преимущества Spring Boot

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

Spring Boot также имеет встроенный сервер Tomcat, Jetty или Undertow, что позволяет разработчикам создавать автономные приложения производственного уровня. В результате приложение представляет собой исполняемый JAR-файл, который включает в себя все необходимое для запуска, что значительно упрощает развертывание и распространение.

2. Компоненты Spring Boot

• Spring Boot Starters: это набор удобных дескрипторов зависимостей, которые значительно упрощают настройку Maven. Они избавляют разработчиков от необходимости вручную определять версию для каждой зависимости.

• Автоконфигурация: эта функция автоматически настраивает Spring и сторонние библиотеки, когда это возможно. Это основано на том, какие библиотеки присутствуют в пути к классам и других факторах.

• Spring Boot Actuator: Actuator предоставляет готовые к работе функции, такие как проверка работоспособности приложений, аудит, сбор метрик и трассировка HTTP [3].

Ниже представлен простой пример приложения Spring Boot:

import org. springframework. boot.SpringApplication;

import org .springframeviork. boot.autocorfigure.SpringBootApplIcation;

import org .springfrarnework .web. bind .annotation. GetMapping;

import org .springframeviork .web. bind .annotation. RestController;

©SpringBootApplication

public class HelloWorldApplication {

public static void main[String[] args) {

SpiingAp plication.iu ni HelloWorldApp1ication.class, args);

}

@RestControllez

public class HelloController f @G etMapp ing [11 /h e llo " } publi< String helloO {

return "Hello, Spring Boot! ;

}

}

В этом примере класс HelloWorldApplication включает в себя метод main, который использует метод SpringApplication.run() Spring Boot для запуска приложения. Аннотация @SpringBootApplication сообщает Spring Boot, что он должен сделать, например, настраивать DispatcherServlet и читать другие аннотации.

Класс HelloController определен как REST-контроллер с аннотацией @RestController, что означает, что данные, возвращаемые каждым методом, будут записываться непосредственно в тело ответа вместо рендеринга шаблона. Аннотация @GetMapping("/hello") указывает, что метод hello() должен вызываться при выполнении запроса GET по пути "/hello". Этот метод возвращает сообщение "Привет, Spring Boot!".

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

Hibernate

Hibernate ORM (объектно-реляционное отображение) - это Java-фреймворк, который упрощает разработку Java-приложений для взаимодействия с базами данных. Он обеспечивает основу для сопоставления объектно-ориентированной модели предметной области с традиционной реляционной базой данных, устраняя несоответствие между тем, как данные представлены в объектах, и реляционными базами данных.

1. Преимущества Hibernate

Режим Hibernate устраняет проблему несоответствия импеданса, заменяя прямой постоянный доступ к базе данных функциями обработки объектов высокого уровня. Он предлагает решение для сопоставления таблиц базы данных с классом и упрощает операции с базой данных. Hibernate обеспечивает прозрачную сохраняемость, и разработчику не нужно явно писать код для сопоставления таблиц базы данных с объектами приложения во время взаимодействия с СУБД.

Кроме того, Hibernate предоставляет мощный язык запросов (HQL), который похож на SQL. Однако HQL полностью объектно-ориентирован и понимает такие понятия, как наследование, полиморфизм и ассоциация.

2. Компоненты режима Hibernate

• SessionFactory (org.hibernate.SessionFactory): Это заводской класс, используемый для получения объектов сеанса. SessionFactory является потокобезопасным объектом и используется всеми потоками приложения.

• Session (org.hibernate.Session): Объект Session является легким и предназначен для создания экземпляра каждый раз, когда требуется взаимодействие с базой данных. Постоянные объекты сохраняются и извлекаются через экземпляр сеанса.

•Transaction (org.hibernate.Transaction): Transaction представляет собой единицу работы с базой данных, и большинство СУБД поддерживает функциональность транзакций. Transaction в Hibernate обрабатываются базовым менеджером (из JDBC или JTA).

• ConnectionProvider: это фабрика для подключения JDBC. Он абстрагирует приложение от DriverManager или DataSource.

•TransactionFactory: это фабрика для экземпляров транзакций [4].

Ниже предстаден базовый пример того, как Hibernate можно использовать в Java-приложении:

import org.hibernate.Session; import org.hibernate.Transaction ; import org.hibernate.cfg.Configuration;

public class App {

public static void mai [String[] args) { User use] = new Usent); user.setld( ); user.setNamei John Do< ); user.setEmaili"[email protected]">;

Transaction transaction = null;

try [Session session = new Configuratic ( ) .configureO . buildSessionFactoryO .openSession( ) ) { // start a transaction

transaction = session.begirTransaction[);

// save the user object session.save(user);

// co if it it transaction transaction. committ) ; 3 catch (Exception e) [

if (transaction != ~iull) £ transaction.rollback[);

}

e.printStackTraceQ ;

3

В этом примере представлен класс User, который сопоставляется с пользовательской таблицей в базе данных. Сначала создается экземпляр User, задаются его свойства, а затем данный объект сохраняется в базу данных с помощью Session из Hibernate. Объект Transaction используется для обеспечения атомарной обработки операции сохранения.

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

Apache Struts

Apache Struts — это бесплатная среда MVC с открытым исходным кодом для создания элегантных современных веб-приложений Java. Он отдает предпочтение соглашению, а не настройке, расширяется с помощью архитектуры плагинов и поставляется с плагинами для поддержки REST, AJAX и JSON.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Преимущества Struts

Платформа Struts предоставляет набор тегов, которые возможно использовать в конкретных JSP для упрощения процесса разработки. Эти теги включают теги логики (такие как if-else, iterate и т. д.), теги формы (например, текстовое поле, флажок и т. д.), теги данных (например, bean-компонент, свойство и т. д.) и теги шаблона. Библиотека тегов, предоставляемая Struts, намного богаче стандартной библиотеки тегов JSP, что значительно повышает производительность.

Кроме того, Struts способствует четкому разделению задач, хорошо взаимодействуя с шаблоном проектирования MVC (Model-View-Controller). Это делает платформу Struts модульной и позволяет разработчикам отделить логику приложения от слоя пользовательского интерфейса.

2. Ключевые компоненты Struts

• ActionServlet (контроллер): ActionServlet является частью компонента контроллера в приложении на основе Struts. Он действует как централизованная точка для получения всех запросов.

• Struts-config.xml (файл конфигурации): этот XML-файл используется для целей конфигурации Struts

Framework. Он включает информацию о ActionServlets, компонентах ActionForm, классах Action, страницах результатов и т. д.

• ActionForm (JavaBean): также называется FormBean. Это JavaBean, который связывает одно или несколько ActionMapping. Обычно он используется для представления входных данных формы, содержащих getter/setter для своих переменных-членов.

• ActionMapping: ActionMapping представляет информацию, которую контроллер ActionServlet знает о сопоставлении конкретного запроса с экземпляром определенного класса Action.

• ActionForward: ActionForward используется для пересылки элемента управления на указанный ресурс.

• Action. Action — это адаптер между содержимым входящего HTTP-запроса и соответствующей бизнес-логикой, которая должна выполняться для обработки этого запроса [5].

Типичное приложение Struts может включать форму, с которой взаимодействует пользователь:

<html:form actio- =nlogin.do >

<html:text ûioperty^username™ la bel—1 User rame "/> <html:password prc|:erty=4nassword" labeL="Password"/> <html:sjbnlt/> </html:foim>

И соответствующий класс Action, который обрабатывает отправку формы:

public class LoginAction extends Action [

public ActionForward executetActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) throws Exception {

_oginForm loginForm = {LoginForm) form;

if (loginForm.getUsername().equals("admin") && loginForm.getPasswordCJ.equals( admin *]) t

return mapping.findForwardi success"); } else {

return mapping.findForwardi failure );

}

}

В этом коде LoginForm — это bean-компонент формы, представляющий данные из формы. Класс LoginAction содержит бизнес-логику для обработки формы, проверки учетных данных пользователя. ActionMapping позволяет приложению определить, что должно произойти дальше — в данном случае показывать ли страницу успеха или страницу отказа.

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

Apache Kafka

Apache Kafka — это высокопроизводительная распределенная платформа потоковой передачи событий с открытым исходным кодом. Он известен своей способностью обрабатывать потоки данных в реальном времени с высокой пропускной способностью и распределенной обработкой. Kafka часто используется тысячами компаний для различных целей, включая высокопроизводительные конвейеры данных, потоковую аналитику, интеграцию данных и критически важные приложения. Он использует модель публикации-подписки для обработки данных в реальном времени и делает потоки данных

доступными для различных приложений и систем.

Kafka разработана для распределенных систем с высокой пропускной способностью и может обрабатывать миллионы сообщений в секунду, обеспечивая обработку потоков данных в режиме реального времени. Его надежность, отказоустойчивость и высокая пропускная способность делают его отличным выбором для построения сложных конвейеров анализа данных, систем аналитики в реальном времени и для обработки больших объемов транзакций. Также хорошо интегрирован с экосистемой Hadoop, поддерживает его возможности по хранению и обработке больших наборов данных и, следовательно, является популярным выбором для сценариев использования больших данных [6].

Следующий код Java представляет собой пример создания сообщения в теме Kafka:

import org.apache.kafka.clients.producer.* ;

public class KafkaProducerEixample f

public static void main[String[] argsH Properties props = new Propertie:(); props.put( "bootstrap.servers", "localhost:9092");

props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer")\ pr o ps. put ( " valu e. ser iali zer ", "org.a pach e. kaf ka . common. serializat ion . Str i ngSe rial iz e r " ) ;

Producer<String, Strings producer = new Kafk£=roducer<>(props);

ProducerRecord<String, Strings record = ^roducerRecordot "my-topic", "key", "value");

producer.sendirecord, new CallbackO [

public void onCompletior [RecordMetadata metadata, Exception exception) { if [exception != null) {

exception. printStackTzaceO ;

J else f

System.out.printlni"Message sent to topic -> " + metadata.topic[));

}

}

3) ;

producer.closei) ;

Î

Этот код сначала создает экземпляр KafkaProducer с адресом сервера и сведениями о сериализации для ключей и значений. Затем метод send() используется для асинхронной отправки записи в тему. Обратный вызов используется для обработки потенциальных исключений в процессе отправки, а производитель закрывается после отправки сообщения.

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

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

JHipster

JHipster — это платформа разработки для создания, разработки и развертывания Spring Boot + Angular/веб-приложений и микросервисов Spring. Он объединяет эти две популярные платформы в комплексное предложение, которое позволяет разработчикам легко создавать современные веб-

приложения и архитектуры микросервисов.

1. Преимущества JHipster

JHipster создает полное и современное веб-приложение или микросервисную архитектуру, объединяющую:

• Высокопроизводительный и надежный стек Java на стороне сервера с Spring Boot.

• Изящный, современный, ориентированный на мобильные устройства интерфейс с Angular и Bootstrap.

• Надежная микросервисная архитектура с реестром JHipster, Netflix OSS, стеком ELK и Docker.

• Мощный рабочий процесс для создания вашего приложения с помощью Yeoman, Webpack и Maven/Gradle.

•JHipster предлагает широкий выбор для разработчика, от типа приложения (монолит или микросервисы) до типа используемой базы данных (SQL, MongoDB, Cassandra, Couchbase и т. д.).

2. Ключевые компоненты JHipster

• Spring Boot: JHipster основан на Spring Boot для серверных приложений.

• Angular/React/Vue: на стороне клиента используются Angular, React или Vue.

•JHipster Domain Language (JDL): JDL позволяет определить модель данных, используя простой и удобный синтаксис. Можно определять сущности и отношения с помощью JDL, и JHipster сгенерирует соответствующий код.

• Поддержка архитектуры микросервисов: JHipster обеспечивает поддержку создания микросервисов на основе Spring Boot и Spring Cloud [7].

Чтобы начать проект с JHipster, нужно установить генератор JHipster с помощью npm (менеджер пакетов Node.js):

npm install -g generator-jhipster

Затем нужно создать новый каталог и запустить JHipster:

rnkdir myproject cd myproject jhipster

JHipster предложит тип приложения для создания и другие параметры конфигурации. После того, как сделан выбор, JHipster сгенерирует полное приложение — внешнее и внутреннее — с представленными вариантами.

Ниже представлен пример простого файла JDL, который создает сущность Product:

entity Product {

name String required,

price BigDecimal min(O) required,

image ImageBlob

dto Product with mapstruct paginate Product with infinite-scroll service Product with serviceClass

Этот код JDL создаст объект Product с именем, ценой и изображением, а также DTO (объект передачи данных), класс обслуживания и разбиение на страницы.

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

Сравнение серверных фреймворков Java

В таблице ниже сравниваются некоторые из наиболее популярных серверных фреймворков Java по различным критериям:

Таблица 1

Сравнение популярных фреймворков Java Table 1 - Comparison of popular Java frameworks

Фреймворк Архитектура Сложность Область применения Масштабируемость

Малые веб-приложения,

Servlets Стандартная Низкая обучение Низкая

Корпоративные веб-

приложения,

Spring Boot MVC Средняя микросервисы Высокая

Устойчивое хранение

Hibernate ORM Средняя данных в SQL базах данных Высокая

Корпоративные веб-

Apache Struts MVC Высокая приложения Средняя

Реальные потоки данных,

аналитика в реальном

Apache Kafka Event-Driven Высокая времени Очень высокая

Быстрая разработка

приложений,

JHipster MVC, Микросервисы Средняя микросервисы Высокая

Заключение

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Spring Boot с его соглашением по философии конфигурации и обширной экосистемой — отличный выбор для создания приложений корпоративного уровня благодаря полной интеграции с другими компонентами экосистемы Spring и сторонними библиотеками.

Hibernate уже давно является решением для ORM в Java, которое обеспечивает мост между объектно-ориентированными моделями предметной области и системами реляционных баз данных, что делает его основным продуктом в приложениях с большим объемом баз данных.

Apache Struts — хороший выбор для веб-приложений благодаря богатому набору библиотек тегов и надежному дизайну MVC, который помогает поддерживать четкое разделение задач в коде.

Apache Kafka обеспечивает конвейеры данных в реальном времени и потоковую аналитику, являясь ценным инструментом в нашу эпоху, ориентированную на данные.

JHipster — прекрасный инструмент для начальной загрузки проекта, позволяющий быстро создать полнофункциональное приложение с использованием Spring Boot на бэкенде и Angular, React или Vue.js на интерфейсе, а также других современных инструментов и практик.

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

Список использованной литературы: 1. Дж. Блох, «Эффективная Java», третье издание, Addison-Wesley, 2018, стр. 45-47, 52, 60-66.

2. Oracle Corporation. «Введение в Servlets Java», 2023 [Электронный ресурс], Режим доступа: https://docs.oracle.eom/javaee/7/tutorial/servlets001.htm.

3. Spring.io, «Spring Boot», [Электронный ресурс], Режим доступа: https://spring.io/projects/spring-boot

4. Hibernate.org, «Hibernate ORM», 2023 [Электронный ресурс], Режим доступа: https://hibernate.org/orm/

5. Apache.org, «Apache Struts», 2023 [Электронный ресурс], Режим доступа: https://struts.apache.org/

6. Apache.org, «Apache Kafka», 2023 [Электронный ресурс], Режим доступа: https://kafka.apache.org/intro

7. JHipster.tech, «JHipster», 2023 [Электронный ресурс], Режим доступа: https://www.jhipster.tech

References

1. J. Bloch, Effective Java, third edition, Addison-Wesley, 2018, pp. 45-47, 52, 60-66.

2. Oracle Corporation. "Introduction to Java Servlets", 2023 [Electronic resource], Access mode: https://docs.oracle.com/javaee/7/tutorial/servlets001.htm.

3. Spring.io, "Spring Boot", 2023 [Electronic resource], Access mode: https://spring.io/projects/spring-boot

4. Hibernate.org, "Hibernate ORM", 2023 [Electronic resource], Access mode: https://hibernate.org/orm/

5. Apache.org, "Apache Struts", 2023 [Electronic resource], Access mode: https://struts.apache.org/

6. Apache.org, "Apache Kafka", 2023 [Electronic resource], Access mode: https://kafka.apache.org/intro

7. JHipster.tech, "JHipster", 2023 [Electronic resource], Access mode: https://www.jhipster.tech

© Здитовец А.Л., 2023

УДК 62

Зиборев А.В.

Предприниматель Самара, Россия

ИСПОЛЬЗОВАНИЕ ЦЕПОЧЕК BLOCKCHAIN И ИСКУССТВЕННОГО ИНТЕЛЛЕКТА В СФЕРЕ ЛОГИСТИКИ И АВТОПЕРЕВОЗОК

Аннотация

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

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

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.