我的应用程序中有不同的功能。对于这些多种功能,将创建不同的组件。
在组件之一(在我的war文件中创建为jar)中,例如组件A,我使用ServiceLocatorFactoryBean
来定位服务。
现在我想在另一个组件(例如组件B)中使用ServiceLocatorFactoryBean
。在另一个组件中也使用它时,我会得到:
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.
我认为这是因为组件A中已经创建了ServiceLocatorFactoryBean
。任何人都可以帮忙吗?
在组件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;
}
}