Как мне связать два сервиса на Spring , чтобы один обращался к другому?

КонтроллерЕсть проект, в одном есть сервис, DTO с классом Clientsinfo, контроллер.

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

Но я не знаю как мне их связать, в Google прочитал, что RestTemplate служит связью между сервисами, но класс Clientsinfo по прежнему не виден.


Ответы (2 шт):

Автор решения: Roman C

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

Затем добавить полученный .jar в зависимости к обоим проектам.

Или же просто добавить зависимость от другого проекта. Тогда требуемый класс будет виден в другом проекте, но при этом будет видно также много ненужного.

Поэтому, лучше воспользоваться первым способом.

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

→ Ссылка
Автор решения: кирилл шульжик

Ты должен в новом проекте сделать клиент через RestClient или WebClient (RestTemplate считается устаревшим).

Этот клиент будет делать GET-запрос по url первого проекта, в первом проекте должен был контроллер, обрабатывающий GET-запросы, т.е. помеченный аннотацией @GetMapping(value = "/clients"), например, и возвращающий DTO клиентов. Новый проект получит это DTO и дальше уже обрабатывайте его в зависимости от целей и задач.

→ Ссылка