gpt4 book ai didi

java - 如何@Autowired 服务的具体实现?

转载 作者:搜寻专家 更新时间:2023-11-01 02:19:35 26 4
gpt4 key购买 nike

我有以下情况:

public interface ServiceAura extends Serializable { }

@Service
public class ServiceA implements ServiceAura {
....
}

@Service
public class ServiceB implements ServiceAura {
....
}

现在我需要在 Controller 中分别调用它们:

@Path("")
@Controller
public class ServiciosAuraPortalRESTfulService {

@Autowired
private ServiceAura srvA;

@Autowired
private ServiceAura srvB;

}

我读过@Qualified,这是唯一的方法吗?我该如何存档?

最佳答案

你是对的。您可以使用 @Qualifier("ServiceA") 指定要 Autowiring 的实现。

@Path("")
@Controller
public class ServiciosAuraPortalRESTfulService {

@Autowired
@Qualifier("ServiceA")
private ServiceAura srvA;

@Autowired
@Qualifier("ServiceB")
private ServiceAura srvB;

在服务本身上,您可以使用注释 @Primary 来指定哪个是您想要的默认实现。

或者,您可以使用应用程序上下文来检索特定的 bean。您需要 Autowiring ApplicationContext 类,然后使用 ServiceAura srvA = context.getBean(ServiceA.class);

检索它

关于java - 如何@Autowired 服务的具体实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51419904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com