我有两个项目:A和B。 我在项目A中创建一个bean,如下所示:
@Configuration
public class ConnectorConfiguration {
@Bean(name = "CON")
public ConnectorRegistry connectorRegistry() {
return new LocalConnectorRegistry();
}
}
然后在项目B中,我像这样向Bean添加数据:
@Configuration
public class SomeClass {
@Inject
private ConnectorRegistry connectorRegistry;
@Bean
public Connector SomeClass Connector() {
Connector connector = new BaseConnector(BLA, contextFactory);
connectorRegistry.register(connector);
return connector;
}
}
当我回到项目A时,我有这个课程:
@Service
@DependsOn("CON")
public class SomeWorker {
@Autowired
private ConnectorRegistry connectorRegistry;
但是这里的connectorRegistry
是空的,即使我向其中添加了数据,我也知道,通过查看spring live bean图,bean是这样的依赖关系:
SomeWorker ----> CON <----- SomeClass
因此,如果SomeClass
和SomeWorker
都在同一个bean上查找,则它不应为null。我在这里想念什么?
编辑:
在项目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);
}
}