gpt4 book ai didi

java - Spring通用bean工厂

转载 作者:行者123 更新时间:2023-11-30 07:52:34 24 4
gpt4 key购买 nike

Spring 中是否有一种机制可以提供一种自动化构建通用 bean 的方法?

例如,如果我有一个像这样的类定义:

class Foo<T> {
private final T type;
...
}

和依赖如:

@Autowired
private Foo<String> foo;

我想在 Spring 中使用某种机制,以某种形式从依赖项定义(在上面的示例中为 String)中提供 T 并提供一种自动创建实例的方法?

最佳答案

这个问题有点老,但是没有包含示例的答案,所以...

使用ResolvableType:

public <E> Foo<E> produceFoo(final InjectionPoint ip) {
ResolvableType resolved = ResolvableType.forField(ip.getField());
Foo<E> fooInstance = new FooImpl<>();

Class<E> parameterClass = (Class<E>) resolved.getGeneric(0).resolve();
fooInstance.doSomethingWithParametrized(parameterClass);

return fooInstance;
}

InjectionPoint cames from: import org.springframework.beans.factory.InjectionPoint;

关于java - Spring通用bean工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45741395/

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