У меня есть 2 проекта, основной проект весеннего ботинка и второй проект весны, содержащий @Contollers, @Services и т. Д.@ComponentScan из 2-х пакетов
Я пытаюсь использовать некоторые из этих услуг в основном проекте. Я видел подобные вопросы, как here, here, here и многие другие, но это не работает для меня
1), если у меня есть только
@SpringBootApplication
public class App { ... }
тогда он не компилируется, потому что не может найти услуги от второй проект
2) при попытке сканирования второго пакета
@SpringBootApplication
@ComponentScan("secondPackage")
public class App {}
то приложение ул без ошибок, но сопоставление контроллеров вообще не работает. Картирование из обоих проектов не может быть разрешено.
3), то я попытался исключить контроллеры из второго пакета, потому что они не нужно, отображение до сих пор не работает
@ComponentScan(basePackages="secondPackage", excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = Controller.class)})
4), то я пытался просканировать конкретные услуги, но и в этом случае других ресурсы не доступны, и я должен включать в гораздо дорожкам
@ComponentScan({"first package", "second package"})
5) наконец, я пытался сделать 2 конфигурационные файлы
@Configuration
@ComponentScan(basePackages = {"mainPackage"})
public class MainConfiguration {
}
@Configuration
@ComponentScan(basePackages="secondPackage",
excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = Controller.class)})
public class SecondConfiguration {
}
но я не нашел пример, как я могу подготовить контекст до SpringApplication.run (App.class, args); а затем запустите приложение в моем контексте. как
ApplicationContext myContext = new AnnotationConfigApplicationContext(OrderStatusConfiguration.class, ShopRuServicesConfiguration.class);
SpringApplication.run(App.class, myContext, args);
Поэтому, пожалуйста, дайте мне совет, почему отображение не работает или как я должен надлежащий autowire услуг от второго проекта!
Я ценю любую помощь! Благодаря!
Я думаю, что идея совместного использования кода между двумя различными контекстами приложений SpringBoot противоречит всей идее наличия двух приложений. Я бы предложил создать третий проект SpringBoot с общим кодом и предоставить функции через RestAPI. – Fernando
второе приложение - обычное весеннее приложение mvc, и около 30% классов необходимы в первом загрузочном приложении весны. реализация службы отдыха была моей первой идеей, но это не вариант, потому что тогда вся работа будет выполняться на одном сервере, где находится второе приложение. этот сервер уже перегружен – Slava
, конечно, я могу просто скопировать весь код, но в случае его изменения мне придется менять несколько мест вместо одного. Я думаю, что должен быть какой-то способ повторно использовать службы из другого модуля, который включен как зависимость – Slava