У меня есть 2 бина одного типа:
@Component("beanA")
public class BeanA implements BaseBean {}
@Component("beanB")
public class BeanB implements BaseBean {}
Этот тип используется в моем сервисе:
@Service
public class MyService {
@Autowired
private BaseBean baseBean;
}
Теперь я хочу использовать оба возможных бина MyService в другом сервисе
@Service
public class AnotherService {
@Autowired
private MyService myServiceWithBeanA;
@Autowired
private MyService myServiceWithBeanB;
}
Как мне этого добиться?Может быть, я должен выбрать другой подход?
Я знаю, как это сделать в конфигурации bean-компонентов на основе XML.Как я могу сделать это, используя аннотации?
<bean id="AnotherService" class="AnotherService">
<property name="myServiceWithBeanA" ref="myServiceWithBeanA" />
<property name="myServiceWithBeanB" ref="myServiceWithBeanB" />
</bean>
<bean id="myServiceWithBeanA" class="MyService">
<property name="baseBean" ref="beanA" />
</bean>
<bean id="myServiceWithBeanB" class="MyService">
<property name="baseBean" ref="beanB" />
</bean>
<bean id="beanA" class="BeanA" />
<bean id="beanB" class="BeanB" />