Применение Spring, Thymeleaf и Retrofit в разработке информационных систем | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 18 июля, печатный экземпляр отправим 22 июля.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №20 (310) май 2020 г.

Дата публикации: 14.05.2020

Статья просмотрена: 3 раза

Библиографическое описание:

Белова, Т. В. Применение Spring, Thymeleaf и Retrofit в разработке информационных систем / Т. В. Белова, Д. О. Белова. — Текст : непосредственный // Молодой ученый. — 2020. — № 20 (310). — С. 23-25. — URL: https://moluch.ru/archive/310/69795/ (дата обращения: 10.07.2020).



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

Ключевые слова: информационная система, Spring, Thymeleaf, Retrofit.

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

Новизна рассматриваемой информационной системы состоит в том, что она состоит из двух частей, связанных общим серверным модулем.

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

Вторая часть системы представляет собой мобильное приложение, клиентская часть которого разработана с использованием библиотеки Retrofit [2].

Серверный модуль реализован с использованием Spring [3].

Рассмотрим сначала более подробно, как организована серверная часть. Spring в настоящее время является одним из самых популярных фреймворков для программирования на Java. Он был разработан в 2003 году, и с тех пор постоянно совершенствуется. Одним из паттернов проектирования, используемых в Spring, является внедрение зависимостей (Dependency Injection). Это один из видов инверсии управления, который позволяет сделать классы как можно более независимыми друг от друга для упрощения возможности их дальнейшего использования и написания юнит-тестов. Внедрение зависимостей в данном случае осуществляется через соответствующие аннотации.

В качестве примера применения принципа внедрения зависимостей в нашем приложении рассмотрим несколько классов и интерфейсов из нашего приложения.

Для хранения информации о зарегистрированном пользователе в базе данных есть сущность User. Доступ к ней осуществляется через интерфейс UserRepository. Причем реализации этого интерфейса в программном коде нет. Предполагается, что Spring выберет подходящую реализацию интерфейса из библиотеки. Далее, определяется интерфейс сервиса UserService и его реализация UserServiceImpl. Чтобы использовать в реализации сервиса репозиторий, мы объявляем его следующим образом:

@Autowired

private UserRepository userRepository;

Аннотация @Autowired указывает, что Spring сам найдет походящую реализацию для этого интерфейса.

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

@Autowired

UserService userService;

Так же, как и в предыдущем случае, Spring найдет реализацию этого интерфейса.

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

Таким образом, мы получаем программный код, наиболее удобный для добавления или изменения функционала.

В процессе разработки использовался паттерн MVC (Model-View-Controller), который позволяет разделить шаблон web-страницы, данные и методы их обработки, что улучшает читаемость программного хода и упрощает разработку и отладку приложения [4]. Впервые этот шаблон был описан норвежским профессором Трюгве Реенскаугом в 1979 году [5]. Согласно такому подходу, архитектура приложения разбивается на три взаимосвязанные части: модель (Model), представление (View) и контроллер (Controller), как показано на рис.1:

Рис. 1. Шаблон MVC

Первая часть — модель — содержит бизнес-логику приложения. Эта часть не зависит от остальных и не содержит никаких сведений о контроллере и представлении. В нашем приложении модель представляет собой базу данных.

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

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

Применение Spring Security [6] позволило реализовать разделение ролей пользователей web-приложения.

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

Теперь рассмотрим более подробно организацию клиентской части web-приложения. Используемый в ее реализации движок шаблонов Thymeleaf позволяет разработчику создавать динамические web-страницы путем встраивания в html-код специальных атрибутов для связи представления с контроллером. Для подключения Thymeleaf к html-странице используется тег .

Атрибуты начинаются с префикса th. Например, описание таблицы со списком будущих соревнований выглядит следующим образом:

Название

Расположение Дата проведения

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

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

Передача запросов в базу данных организована с использованием библиотеки для мобильных приложений Retrofit [2]. Эта библиотека разработана компанией Square, с ее помощью можно создавать запросы к web-сервисам в синхронном и асинхронном режиме.

Информационная система разработана на основе архитектурного стиля REST, впервые описанного Роем Томасом Филдингом в его докторской диссертации «Архитектурные стили и проектирование сетевых программных архитектур» [7] в 2000 г. Идея этого стиля заключается в соблюдении набора ограничений, которые следует учитывать при проектировании распределенной гипермедиа-системы. Это позволило разработать единую серверную часть для обработки запросов web-страницы и мобильного приложения.

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

Информационная система для регистрации пользователей прошла проверку в марте-апреле 2020 года при подготовке к проведению пробега в честь Дня космонавтики. Организованный в ней процесс регистрации получил высокую оценку как у судей, так и у участников соревнования. К сожалению, тестирование мобильной части приложения пришлось отложить в связи с отменой всех ближайших соревнований.

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

Литература:

  1. https://www.thymeleaf.org/documentation.html.
  2. https://square.github.io/retrofit.
  3. https://spring.io/guides.
  4. https://www.codecademy.com/articles/mvc.
  5. https://ru.wikipedia.org/wiki/Реенскауг,_Трюгве.
  6. https://docs.spring.io/spring-security/site/docs/current/reference/html5.
  7. https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf.
Основные термины (генерируются автоматически): MVC, баз данных, программный код, клиентская часть, информационная система, проведение соревнований, модель, интерфейс, часть системы, внедрение зависимостей.


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

информационная система, Spring, Thymeleaf, Retrofit

Похожие статьи

Использование шаблона проектирования MVC в разработке...

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

Использование современных web-технологий при реализации...

Основополагающим элементом любой информационной системы являются базы данных или базы знаний. Под базой данных мы будем.

MVC – это вариант нестрогой многоуровневой системы, где декомпозиция реализована за счет. В ней компонентам того или иного уровня...

О технологии организация web-интерфейса к базе данных

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

После запуска PHPRunner, указывается тип базы данных. В зависимости от типа выбранной базы данных показывается одно из...

Особенности реализации MVC-архитектуры в веб-приложениях

MVCModel View Controller (модель представление контроллер) – архитектурный паттерн проектирования, который используется для организации программного кода. Его основная идея в том, чтобы отделить модели данных, их отображение и операции взаимодействия с...

Проектирование базы данных. Роль процесса в создании...

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

Основные функция веб-приложения с учетом анализа...

Использование шаблона проектирования MVC в разработке современных информационных систем.

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

Использование шаблонов проектирования информационных...

База данных, являющаяся одной из важнейших частей информационной системы, конечно же, представляет собой сложный объект...

Использование шаблона проектирования MVC в разработке... При проектировании и разработке информационных систем их архитекторы и.

Основные принципы и этапы моделирования информационных...

Внедрение информационной системы управления компанией, как и любое

Различные информационные системы управленческого учета подлежат процессу моделирования.

Информационно-аналитические системы (ИАС) призваны на основе данных, получаемых в...

Разработка мобильных приложений с использованием облачных...

MVCModel View Controller (модель представление контроллер) – архитектурный паттерн проектирования, который используется для организации программного кода. Его основная идея в том, чтобы отделить модели данных, их отображение и операции взаимодействия с...

Исследование моделей деятельности организации в условиях...

Информационная система — взаимосвязанная совокупность средств, методов и персонала, которые используются для хранения, обработки и выдачи

Поэтому существует такая модель деятельности организации в условиях внедрения информационной системы, как...

Похожие статьи

Использование шаблона проектирования MVC в разработке...

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

Использование современных web-технологий при реализации...

Основополагающим элементом любой информационной системы являются базы данных или базы знаний. Под базой данных мы будем.

MVC – это вариант нестрогой многоуровневой системы, где декомпозиция реализована за счет. В ней компонентам того или иного уровня...

О технологии организация web-интерфейса к базе данных

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

После запуска PHPRunner, указывается тип базы данных. В зависимости от типа выбранной базы данных показывается одно из...

Особенности реализации MVC-архитектуры в веб-приложениях

MVCModel View Controller (модель представление контроллер) – архитектурный паттерн проектирования, который используется для организации программного кода. Его основная идея в том, чтобы отделить модели данных, их отображение и операции взаимодействия с...

Проектирование базы данных. Роль процесса в создании...

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

Основные функция веб-приложения с учетом анализа...

Использование шаблона проектирования MVC в разработке современных информационных систем.

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

Использование шаблонов проектирования информационных...

База данных, являющаяся одной из важнейших частей информационной системы, конечно же, представляет собой сложный объект...

Использование шаблона проектирования MVC в разработке... При проектировании и разработке информационных систем их архитекторы и.

Основные принципы и этапы моделирования информационных...

Внедрение информационной системы управления компанией, как и любое

Различные информационные системы управленческого учета подлежат процессу моделирования.

Информационно-аналитические системы (ИАС) призваны на основе данных, получаемых в...

Разработка мобильных приложений с использованием облачных...

MVCModel View Controller (модель представление контроллер) – архитектурный паттерн проектирования, который используется для организации программного кода. Его основная идея в том, чтобы отделить модели данных, их отображение и операции взаимодействия с...

Исследование моделей деятельности организации в условиях...

Информационная система — взаимосвязанная совокупность средств, методов и персонала, которые используются для хранения, обработки и выдачи

Поэтому существует такая модель деятельности организации в условиях внедрения информационной системы, как...

Задать вопрос