У меня есть два проекта: A и B.
Я создаю bean-компонент в проекте A следующим образом:
@Configuration
public class ConnectorConfiguration {
@Bean(name = "CON")
public ConnectorRegistry connectorRegistry() {
return new LocalConnectorRegistry();
}
}
Затем в проекте B я добавляю данные в компонент следующим образом:
@Configuration
public class SomeClass {
@Inject
private ConnectorRegistry connectorRegistry;
@Bean
public Connector SomeClass Connector() {
Connector connector = new BaseConnector(BLA, contextFactory);
connectorRegistry.register(connector);
return connector;
}
}
и когда я возвращаюсь к проекту А, у меня есть этот класс:
@Service
@DependsOn("CON")
public class SomeWorker {
@Autowired
private ConnectorRegistry connectorRegistry;
но connectorRegistry
здесь равно нулю, хотя я добавил к нему данные, и я знаю, что, посмотрев на график пружинных бинов, бобы находятся в зависимости, вот так:
SomeWorker ----> CON <----- SomeClass
Так что если SomeClass
и SomeWorker
оба смотрят на один и тот же компонент, тогда он не должен быть нулевым. что мне здесь не хватает?
EDIT:
В проекте A
я вызываю SomeWorker
через SpringBoot
основной класс, как это, может быть, это связано с проблемой:
/**
* Application entry point
*/
@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@ComponentScan(value = "com.other.components")
public class MainApp
extends MainAppSpringBootApplication {
public MainApp() {
super(SomeClass.class);
}
public static void main(String[] args) {
ConfigurableApplicationContext ctx = new SpringApplicationBuilder(MainApp.class)
.initializers(new ZooKeeperPropertiesApplicationContextInitializer())
.run(args);
}
}