UHDante:
私は、次のような状況があります。
public interface ServiceAura extends Serializable { }
@Service
public class ServiceA implements ServiceAura {
....
}
@Service
public class ServiceB implements ServiceAura {
....
}
今、コントローラから、私は別のことでそれらの両方を呼び出す必要があります:
@Path("")
@Controller
public class ServiciosAuraPortalRESTfulService {
@Autowired
private ServiceAura srvA;
@Autowired
private ServiceAura srvB;
}
私は@Qualifiedについて読んだことがある、これが唯一の方法ですか?どのように私はこれをアーカイブすることができますか?
アレックス・ロイグ:
あなたが正しい。あなたは使用することができ@Qualifier("ServiceA")
、あなたがautowireしたいの実装を指定します。
@Path("")
@Controller
public class ServiciosAuraPortalRESTfulService {
@Autowired
@Qualifier("ServiceA")
private ServiceAura srvA;
@Autowired
@Qualifier("ServiceB")
private ServiceAura srvB;
}
サービス自体では、あなたは、アノテーションを使用することができます@Primary
1が希望するデフォルトの実装であるかを指定します。
あるいは、特定のBeanを取得するために、アプリケーション・コンテキストを使用することができます。あなたはautowireする必要がありますApplicationContext
クラスをし、その後でそれを取得しますServiceAura srvA = context.getBean(ServiceA.class);