gpt4 book ai didi

java - 我如何在 Spring 通过其默认限定符 bean 名称获取 @Service bean

转载 作者:行者123 更新时间:2023-11-29 05:23:21 24 4
gpt4 key购买 nike

我有很多 ServiceImpl bean,但我想通过其默认名称访问特定的 bean

 class SuperServiceImpl {}

class UserServiceImpl extends SuperServiceImpl {}

class PlaceServiceImpl extends SuperServiceImpl {}

public SuperServiceImpl getServiceImpl(String qualifierName) {
// if qualifierName="userServiceImpl"
// return UserServiceImpl
}

我尝试实现以下解决方案

Auto-cast Spring Beans

但我没有在 ApplicationContext 引用上获取 getBean() 方法。

最佳答案

return applicationContext.getBean(qualifierName, SuperServiceImpl.class) 您可能想为 SuperServiceImpl 定义一个接口(interface)并使用 return applicationContext.getBean(qualifierName, SuperService .class) 而不是,尤其是当您有多个实现时。

当然,要实现这一点,您需要正确定义 bean:

  • 对于 XML,限定符是 bean 元素的 id 属性
  • 使用 Javaconfig,方法的名称默认为 bean 名称。您当然可以使用 @Bean 注释的 name 属性覆盖它

关于java - 我如何在 Spring 通过其默认限定符 bean 名称获取 @Service bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23752944/

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