首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对自动配置组件中泛型的classType的访问

对自动配置组件中泛型的classType的访问
EN

Stack Overflow用户
提问于 2018-09-25 21:12:35
回答 1查看 148关注 0票数 1

我的控制器里有个部件是自动装配的,

下面是我的组件的代码:

代码语言:javascript
运行
复制
@Component
public class Utils<T> {

    @Autowired
    ObjectMapper objectMapper;

    private Class<T> mappedClass;

    public Utils(Class<T> mappedClass) { this.mappedClass = mappedClass; }

public T builder(String stringJson, T object) {
       /* doing staff ...*/
        return objectMapper.readValue(new TreeTraversingParser(jsonNode), mappedClass);
    }

}

我的自动组件使用泛型,当我试图通过在构造函数中传递类类型来访问类类型时。但是,我得到了这个错误:

无法自动布线。没有找到“类”类型的bean。检查bean类中的自动生成问题。

当我启动我的弹簧靴时,它说:

ca.util.Utils中构造函数的参数0需要一个类型为'java.lang.Class‘的bean,而这个bean是找不到的。 操作: 考虑在您的配置中定义'java.lang.Class‘类型的bean。

我怎么才能避免呢?

EN

回答 1

Stack Overflow用户

发布于 2018-09-25 21:39:17

您没有显示您如何尝试安装Utils,所以我们没有所有必要的信息。

第一个问题是@组件需要构造函数参数。如果使用传递参数的ApplicationContext.getBean版本实例化组件,则可以解决此问题。

或者,您也可以使用@Qualifer注释提供构造函数参数(给构造器参数一个名称,然后在其他地方提供)

另一个问题是,您的@组件有一个原始的泛型类型。我还没看到,所以我不确定这有可能。对于@Component spring,需要创建具体类的实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52506776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档