Spring @Qualifier注解
原创转载请注明出处:http://agilestyle.iteye.com/blog/2330133
考虑一个如下的场景:如图所示,两个Invoice的Service实现同一个接口,在Resource下调用两个服务的话,需要使用@Qualifier注解来确保注入的Bean是唯一的。
IBatchApprovalService.java
public interface IBatchApprovalService {
...
}
IInvoiceApprovalService.java
public interface IInvoiceApprovalService {
...
}
PaymentBatchApprovalService.java
@Service
public class PaymentBatchApprovalService implements IBatchApprovalService {
...
}
InvoiceDetailApprovalService.java
@Service("invoiceDetailApprovalService")
public class InvoiceDetailApprovalService implements IInvoiceApprovalService {
...
}
InvoiceHeaderApprovalService.java
@Service("invoiceHeaderApprovalService")
public class InvoiceHeaderApprovalService implements IInvoiceApprovalService {
...
}
PaymentApprovalResource.java
@Component
@Scope("request")
@Path("/payment_approval")
public class PaymentApprovalResource {
...
@Inject
@Qualifier("invoiceDetailApprovalService")
private IInvoiceApprovalService invoiceDetailApprovalService;
@Inject
@Qualifier("invoiceHeaderApprovalService")
private IInvoiceApprovalService invoiceHeaderApprovalService;
@Inject
private IBatchApprovalService paymentBatchApprovalService;
}