Зависимости инициализатора Spring для консольного приложения потребителя REST

Я новичок в Spring Boot. Я хочу инициализировать проект, состоящий из:

  1. Консольное приложение, которое работает с аргументами командной строки, чтобы файлы JAR можно было позже использовать в запланированных задачах.
  2. Использует службу RESTful
  3. логирование

Какие зависимости пакетов я должен выбрать в Инициализатор Spring? Существуют ли помимо необходимых пакетов дополнительные библиотеки, которые упрощают разработку?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Зависит от того, как вы хотите использовать спокойный сервис, но вам могут не понадобиться никакие дополнительные стартеры, ядро ​​spring-boot-starter, которое вы получаете, когда просто нажимаете «Создать проект», и обычно подразумевается со всеми распространенными стартерами, такими как -web, -security, .. имеет ведение журнала и внедрение зависимостей, и это все, что вам нужно для создания jar-файла, который можно легко запустить с java -jar

Однако он не поставляется с RestTemplate, который является обычным способом создания клиентов для отдыха весной. Для этого вам нужно вручную добавить зависимость от org.springframework:spring-web, как вы можете увидеть примеры в https://spring.io/guides/gs/consuming-rest/

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

Существует также Feign, который можно использовать в качестве клиента отдыха, и он доступен из инициализатора, примеры на https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html - не пробовал, и я не уверен, сколько дополнительных облачных зависимостей будет добавлено при добавлении стартера.

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

[...] so the JAR files could be later used in scheduled tasks.

звучит так, как будто вы пытаетесь создать библиотеку / модуль более крупного приложения. Для этого вам не нужно приложение, которое работает автономно, поэтому, возможно, вам стоит прочитать https://spring.io/guides/gs/multi-module/. Разница для библиотек заключается в том, что вам не нужен плагин весенней загрузки для maven / gradle, который может упаковывать автономную банку, а только управление зависимостями.

Привет! Спасибо вам за ваши предложения. Думаю, я дам шанс Притворяться. Это будет отдельное приложение, а не часть более крупного. Один вопрос: если spring-boot-starter уже содержит общие стартеры, то почему оба Web и Security доступны как зависимости?

disasterkid 24.05.2018 10:54

@Disasterkid стартер без суффикса - это не тот, который содержит все, в отличие от других проектов. Если вам нужен веб-сервер в вашем приложении, вам понадобится стартер -web и так далее. Зависимости начального уровня предназначены для предоставления вам всех (сторонних) зависимостей и конфигурации Spring, необходимых для, например, приложения -web. И если вы хотите использовать mongo DB в качестве своей БД, вы добавляете этот стартер поверх.

zapl 24.05.2018 11:05

Я не понимаю, что вы подразумеваете под «стартером без суффикса». Верно, мне не нужна зависимость Web, потому что она нужна для создания веб-приложений. Так что я должен просто инициализировать свой проект с помощью Security, Feign и соответствующих библиотек базы данных, например. Постгрес?

disasterkid 24.05.2018 11:27

Безопасность @Disasterkid также в основном предназначена для веб-серверов, я не думаю, что вам это понадобится, если вам не нужна какая-либо форма аутентификации в параметрах командной строки. Я имел в виду, что spring-boot-starter - это просто ядро, в отличие от, например, aws-java-sdk, который представляет собой весь SDK, и добавление суффикса дает вам подмножество, например aws-java-sdk-s3 - это просто часть "s3". Я бы выбрал минимум для начала, то есть притворимся, если вы хотите это попробовать. А если вам нужен доступ к postgres, добавьте Jpa (см. spring.io/guides/gs/accessing-data-jpa) и PostgreSQL

zapl 24.05.2018 12:03

Другие вопросы по теме