Я работаю над проектом с несколькими проектами Spring Boot. У меня есть один «общий» проект, который является зависимостью, используемой другими проектами. Внутри этого общего проекта я создал класс @AutoConfiguration, в котором определяю некоторые bean-компоненты, которые должны быть доступны другим проектам-потребителям. Этот класс AutoConfiguration включен в файл META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports.
Теперь проблема в том, что у меня есть динамически создаваемый луч/класс. По сути, я использую проприетарную библиотеку, которая творит чудеса (я не знаю, как именно она работает внутри). Что-то вроде
Код: Выделить всё
@Commands
public interface MyCommands {
@Action(...)
void myFirstAction(...);
}
Тогда его можно будет сделать доступным для других bean-компонентов, которым он требуется:
Код: Выделить всё
@Component
public class MyComponent {
MyCommands commands;
public MyComponent(MyCommands commands) {
this.commands = commands;
}
public void doSomething() {
commands.myFirstAction();
}
}
Но я бы хотел сделать эти MyCommands общими и включить их в AutoConfiguration. На самом деле этого ожидает один из компонентов, определенных в классе AutoConfiguration:
Код: Выделить всё
@AutoConfiguration
public class CommonConfiguration {
@Bean
public CommonHelper commonHelper(MyCommands commands) {
return new CommonHelper(commands);
}
}
Но это не работает. Проекты-потребители жалуются, что компонент типа MyCommands не найден. Есть ли у вас идеи, как это сделать?
Подробнее:
https://stackoverflow.com/questions/799 ... figuration