gpt4 book ai didi

java - 在 spring 中以编程方式将类的实例绑定(bind)到限定符

转载 作者:行者123 更新时间:2023-11-30 02:29:56 25 4
gpt4 key购买 nike

我有从配置值创建的同一类的实例,因此我需要从该配置值注入(inject)/ Autowiring 它们。我在 guice 中这样做,如下所示:

for (String s : config.getStrings()) {
bind(Foo.class).annotatedWith(Names.named(s)).toInstance(new Foo(s));
}

有没有办法在Spring中做这样的事情,或者有没有办法使用FactoryBean之类的东西来创建给定的类的实例限定符

最佳答案

public final class FLEXSyncFactory implements ApplicationContextAware {

private static AbstractApplicationContext context;

public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
context = (AbstractApplicationContext) applicationContext;
}

并注册bean的别名

DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getBeanFactory();
Foo fooBean = beanFactory.getBean(Foo.class);
beanFactory.initializeBean(fooBean, "TheAliasForBeanNameYouNeed");
beanFactory.autowireBeanProperties(fooBean, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true);

关于java - 在 spring 中以编程方式将类的实例绑定(bind)到限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44554466/

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