首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Spring Config将"HardCoded“构造函数Arg Class<T>传递给bean

通过Spring Config将"HardCoded“构造函数Arg Class<T>传递给bean
EN

Stack Overflow用户
提问于 2012-08-15 22:53:35
回答 3查看 9.5K关注 0票数 6

我有一个要注入到服务中的泛型类型。由于泛型在Java中的实现方式,我需要有一个包含泛型类型参数的类信息的构造函数arg (或属性设置器)。

我的问题是--是否可以通过属性注入或指定构造函数arg,传入带有spring的Class的实例?

在运行时之前,我确实知道T的类型,因此我特别知道type参数将是什么。

我在想它应该是这样的:

代码语言:javascript
复制
<bean id="dataMartService" class="com.someclass">
    <constructor-arg value="java.lang.class<com.someotherclass>" />
</bean>

我是不是完全不知道该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-15 22:56:46

尝试:

代码语言:javascript
复制
<bean id="dataMartService" class="com.someClass">
    <constructor-arg>
        <value type="java.lang.Class">someotherclass</value>
    </constructor-arg>
</bean>
票数 9
EN

Stack Overflow用户

发布于 2012-08-15 22:58:31

使用弹簧el:

代码语言:javascript
复制
<constructor-arg value="#{ T(java.lang.Math) }" />

(要实现这一点,您需要Spring3.0)

也就是说,如果在属性设置期间将一个字符串传递到一个需要类的参数中,spring应该会自动转换它,尽管我不确定当匹配构造函数时它是如何工作的。上述方法要简洁得多。

票数 7
EN

Stack Overflow用户

发布于 2014-07-23 13:35:28

您可以使用:

代码语言:javascript
复制
//for constructor
public CheckSpell(SpellCheker spellCheker){
         this.spellCheker=spellCheker;
}

//Use object reference as bean

    <bean id="textEditor" class="com.sring.spellCheck">
          <constructor-arg ref="spellChecker"/>
      </bean>

<bean id="spellCheker" class="com.spring.SpellCheker"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11971651

复制
相关文章

相似问题

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