gpt4 book ai didi

Spring getBean(Class interfaceToCreate, Object... args) 方法丢失?

转载 作者:行者123 更新时间:2023-12-02 08:14:11 25 4
gpt4 key购买 nike

我试图为我的 spring beans 创建工厂类

public interface MyBean implements TBean{}

@Component
@Scope("prototype")
public class MyBeanImpl implements MyBean{
public MyBeanImpl(Request request){//..}
}

@Component
public class MyFactory {
public <T extends TBean> T createbean(Class<T> interfaceToCreate, Object... args) {
return (T)AppContext.getApplicationContext().getBean(interfaceToCreate, args);
}
}

方法AppContext.getApplicationContext()返回ApplicationContext对象

在这里我应该能够创建一个像这样的 spring bean:

@Autowired
protected MyFactory factory;

Request myRequest;
void somemethod(){
factory.createbean(MyBean.class, myRequest)
}

但是BeanFactory不公开任何方法,例如: getBean(Class<T> clazz, Object... args)而且我没有 MyBeanImpl 的默认构造函数类

有人知道如何实现吗?

最佳答案

您可以通过两个步骤来实现这一目标。 ListableBeanFactory提供了方法String[] getBeanNamesForType(Class<?> type) 。获得类型的 bean 名称后,您可以调用 BeanFactory.getBean(String name, Object... args) .

关于Spring getBean(Class<T> interfaceToCreate, Object... args) 方法丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038455/

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