即使在另一个项目中填充了Spring bean,它也为null

时间:2019-01-02 07:58:39

标签: java spring spring-boot spring-cloud-zookeeper

我有两个项目: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

因此,如果SomeClassSomeWorker都在同一个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);        
    }
}

0 个答案:

没有答案