Статьи

Рецепт для начала работы с Spring Boot и Angular 2

Я прежде всего разработчик сервисов, который время от времени должен создавать сносные интерфейсы. Я был опытным в базовых пользовательских интерфейсах на основе AngularJS1 и мог делать вещи, используя подход, который я обрисовал ранее . С появлением Angular 2 мне, к сожалению, пришлось выбросить свой предыдущий подход из окна, и теперь у меня есть подход с Spring Boot / Angular 2, который работает одинаково хорошо.

Подход по существу работает на том факте, что веб-приложение Spring Boot ищет статический контент в очень специфическом месте — в папке src / main / resources / static из корня проекта, поэтому, если я смогу получить окончательный js-контент в эту папку тогда я золотой.

Итак, давайте прыгнем в это.

Предпосылки

Есть прежде всего одно предварительное условие — превосходный инструмент angular-cli, который является благословением для невежественных разработчиков UI, таких как я.

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

Создание проекта SPA

Учитывая эти два инструмента, сначала создайте веб-проект Spring Boot, запустив его с http://start.spring.io или используя следующую команду CLI:

1
spring init --dependencies=web spring-boot-angular2-static-sample

На этом этапе начальный проект должен быть сгенерирован в папке spring-boot-angular2-static-sample. Из этой папки создайте проект Angular 2, используя angular-cli .

1
ng init

Измените место, где angular-cli строит артефакты, отредактируйте angular-cli.json и измените его следующим образом:

angularjs-кли

Теперь создайте статический контент:

1
ng build

это должно получить статический контент в папку src / main / resources / static. И запустите приложение Spring-Boot:

1
mvn spring-boot:run

и пользовательский интерфейс на основе AngularJS2 должен отображаться чисто!

angularjs2-щ

Live Обновить

Одним из преимуществ использования Angular-cli является отличная цепочка инструментов, с которой он поставляется — одним из них является возможность вносить изменения и просматривать их в пользовательском интерфейсе. Эта возможность теряется из-за подхода, описанного здесь, где пользовательский интерфейс может в основном управляться службами, размещенными в проекте Spring-Boot. Однако вернуть функцию живой перезагрузки в разработку AngularJS2 нелегко.

Сначала прокси-сервер, создайте файл proxy.conf.json с записью, которая выглядит следующим образом:

1
2
3
4
5
6
{
  "/api": {
    "target": "http://localhost:8080",
    "secure": false
  }
}

и запустите сервер Angular-cli с помощью команды:

1
ng serve --proxy-config proxy.conf.json

и запустить серверную часть самостоятельно, используя:

1
mvn spring-boot:run

Вот и все, теперь разработка пользовательского интерфейса может осуществляться независимо от API на стороне сервера! Для еще большего эффекта просто используйте отличные devtools , поставляемые в комплекте с Spring Boot, чтобы получить возможность оперативной перезагрузки (более перезапуска) на стороне сервера.

Вывод

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

Ссылка: Рецепт для начала работы с Spring Boot и Angular 2 от нашего партнера JCG Биджу Кунджуммена в блоге all and sundry