Трехуровневая архитектура, Spring и Angular - PullRequest
0 голосов
/ 25 августа 2018

У меня вопрос по трехуровневой архитектуре.

У меня есть приложение, использующее Spring Boot и Angular. Интересно, если:

  • Презентационный слой = угловой
  • Прикладной уровень = пружинная загрузка

Или при наличии ДВУХ трехуровневой архитектуры: угловая - одна, а пружинная - тоже.

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

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Краткий ответ: это зависит от качества вашей реализации.

Для более длинного ответа я хотел бы вначале подвести итог цели архитектуры программного обеспечения.Разделение проекта на несколько уровней в разработке программного обеспечения служит для разделения вашего кода «физически» до того, как вы и ваша команда начнете писать код.Процесс определения вашей архитектуры заранее может дать вам представление о том, как именно весь ваш проект будет структурирован и какие языки или рамки могут / должны использоваться.

Пример трехуровневой архитектуры:

  • Уровень представления : интерфейс вашего приложения.Может быть в HTML / CSS или в веб-фреймворке, таком как Angular или React.Вы хотите, чтобы этот слой отображал данные, которые он извлекает, и выполнял как можно меньше «размышлений».
  • Уровень приложения : это промежуточное программное обеспечение вашего приложения.Может быть реализован на любом языке, который вам нравится, например, PHP, Java, C #, Python и т. Д. Этот уровень является «движком» вашего программного обеспечения и соединяет уровень представления с уровнем данных.Вам не нужны представления или пользовательский интерфейс в этом слое, поскольку это «великий мыслитель» отряда.
  • Уровень данных : ваша база данных или система хранения.Может быть в MySQL, PostgreSQL, MongoDB и т. Д. Уровень данных будет доступен прикладному уровню через вызовы API (примечание: сам вызов API инициируется уровнем представления, но уровень представления не знает, что такоеприкладной уровень будет делать с этим вызовом, это черный ящик между двумя) .

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

Использование Angular в качестве уровня представления (и только уровня представления) имеет большой смысл.Ваше приложение Angular не должно заботиться о данных, которые оно получает, оно должно только отображать их.Поэтому Spring Boot будет компонентом, который доставляет данные с уровня данных на уровень представления.

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

Википедия описывает архитектуру программного обеспечения следующим образом:

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

Поэтому, чтобы окончательно ответить на ваш вопрос: Ваша настройка определяет вашуархитектура .Если вы используете Angular в качестве своего пользовательского интерфейса, Spring Boot в качестве набора сервисов и базу данных для хранения ваших данных, у вас будет трехуровневая архитектура.Если вы решите создать свой веб-интерфейс в Spring Boot без Angular, у вас будет все еще трехуровневая архитектура, но Spring Boot использует два из этих уровней (именно поэтому Spring точно следует шаблону MVC).

0 голосов
/ 25 августа 2018

Архитектура одностраничного веб-приложения Spring MVC + Angular
Приложения корпоративного класса с интенсивным использованием форм идеально подходят для создания одностраничных веб-приложений.Основная идея по сравнению с другими более традиционными серверными архитектурами состоит в том, чтобы создать сервер как набор повторно используемых служб REST без сохранения состояния и с точки зрения MVC вынуть контроллер из серверной части и перенести его в браузер:

enter image description here

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

источник: https://blog.angular -university.io / развивающийся современный java-8-web-app-with-spring-mvc-and-angularjs /

...