gpt4 book ai didi

java - *系列* Bean 的多个实例?

转载 作者:行者123 更新时间:2023-12-01 16:35:55 27 4
gpt4 key购买 nike

我知道如何创建一个 bean 类的多个实例。然而,现在我有一系列的类(class),比如说:

class AppleInModule {
@Autowired RedisTemplate template; // <-- just any *external* dependencies
@Autowired OrangeInModule orange; // <-- dependencies to *internal* classes of this package
@Value("${the_module.apple.some_config_value}") String configValue; // <-- application.yml config values
}

class OrangeInModule {
... // similar
}

然后,我想创建两个系列实例,例如:

mymodule.apple_1 (its "orange" will be orange_1, and its "configValue" is "123"), mymodule.orange_1

mymodule.apple_2 (its "orange" will be orange_2, and its "configValue" is "456"), mymodule.orange_2

问题:如何做到这一点?非常感谢!

最佳答案

可以使用@Qualifier注解来区分同一类的两个bean。
在您的应用程序上下文中:

@Bean(name="orange1")
public OrangeInModule orange1() {
...
}

@Bean(name="orange2")
public OrangeInModule orange2() {
...
}

在你的接线类中:

@Autowired
@Qualifier("orange1")
private OrangeInModule orange1;
@Autowired
@Qualifier("orange2")
private OrangeInModule orange2;

或者,如果有多个实例,而您只想获取所有实例,则可以 Autowiring OrangeInModule 列表,它将保存此类的所有可用 bean

关于java - *系列* Bean 的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61947318/

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