首页 > 解决方案 > 我可以在 Spring 应用程序中创建多个 ServicelocatorFactoryBean 实例吗?

问题描述

我的应用程序中有不同的功能。对于这些多种功能,创建了不同的组件。在其中一个组件(在我的 war 文件中创建为 jar)中,比如组件 A,我已用于ServiceLocatorFactoryBean定位服务。现在我想ServiceLocatorFactoryBean 在另一个组件中使用,比如组件 B。在不同的组件中使用它时,我得到:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.kronos.payroll.aggregation.registry.PayrollServiceRegistry' available: expected at least 1 bean which qualifies as autowire candidate.

我假设发生这种情况是因为ServiceLocatorFactoryBean 在组件 A 中已经创建了一个。任何人都可以帮助解决这个问题吗?

在组件 A 中,

@Configuration
public class ProductConfig {

    @Bean
    public FactoryBean factoryBean() {
        final ServiceLocatorFactoryBean bean = new ServiceLocatorFactoryBean();
        bean.setServiceLocatorInterface(ServiceRegistry.class);
        return bean;
    }

}

在组件 B 中:

@Configuration
public class PayrollProductConfig {

    @Bean("payrollServiceRegistry")
    public FactoryBean factoryBean() {
        final ServiceLocatorFactoryBean bean = new ServiceLocatorFactoryBean();
        bean.setServiceLocatorInterface(PayrollServiceRegistry.class);
        return bean;
    }
}

标签: spring

解决方案


推荐阅读