У меня есть проект весенней загрузки "А". Он содержит запрос на получение rest api под названием /helloworldA

Я создал еще один проект весенней загрузки "B". Я добавил «A» как зависимость от «B». Теперь я ожидал, что /helloworldA сработает, когда я запустил проект «B». Но это не работает

0
Kaushik G 25 Сен 2018 в 16:17

2 ответа

Лучший ответ

Вы должны определить конфигурацию в A.

@Configuration
@ComponentScan(/**scan all beans from A**/)
public class ConfigA {

}

Затем в B вы должны импортировать конфигурацию.

@Configuration
@Import(ConfigA.class)
public class ConfigB {

}

Теперь bean-компоненты из A должны быть обнаружены сканированием компонентов из B.

2
user10367961user10367961 25 Сен 2018 в 13:21

Хотя ответ @alexrolea подходит для этой проблемы, перед этим шагом у меня была еще одна проблема.

Плагин весенней загрузки maven или gradle имеет 2 задачи: - задача / выполнение jar - это создаст банку со всеми зависимостями. Это можно использовать как зависимость для других проектов. Но это не исполняемая банка. Я имею в виду, что мы не можем запустить этот jar-файл как задачу / выполнение bootJar "java -jar" - это выполняется после задачи / выполнения jar. Это создаст загрузочную банку. И структура классов внутри этой фляги другая. например: - Класс com.eg.Config находится в / BOOT-INF / classes / com / eg / Config. Из-за этой измененной структуры другой проект не сможет использовать эту банку в качестве зависимости, поскольку другой проект не знает об этой структуре.

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

  1. Задачи jar и bootJar создают jar-файлы с одинаковыми именами. (т.е.) задача jar from jar заменяется на jar из задачи bootJar
  2. В gradle задача jar по умолчанию отключена. Я включил это с помощью

    jar { enabled = true }

  3. Я изменил имя банки, созданной из задачи bootJar, на следующее

    bootJar { classifier = 'boot' }

  4. Теперь последовал ответ от @alexrolea.
0
Kaushik G 26 Сен 2018 в 14:27