用于设置Class对象的Spring语法?

Ste*_* B. 30 java spring

有没有办法在spring中设置属性,而不是类的实例,而是类对象本身?即

而不是

<bean>
   <property name="prototype" class="a.b.c.Foo">...
Run Code Online (Sandbox Code Playgroud)

给你一个"Foo"的例子,类似于:

<bean>
  <property name="prototype" class="java.lang.Class" value="a.b.c.Foo.class"...
Run Code Online (Sandbox Code Playgroud)

编辑:到目前为止最好(工作)的解决方案 - 使用正常的实例化并在setter中派生类.在解决方案方面,我认为我们将其描述为"作弊":

<bean class="Bar">
   <property name="prototype" class="a.b.c.Foo">...


public class Bar{
        public void setPrototype(Object o){
                this.prototypeClass=o.getClass();
Run Code Online (Sandbox Code Playgroud)

编辑:dtsazza的方法也适用.

编辑:pedromarce的方法也适用.

ped*_*rce 39

<bean>
   <property name="x">
      <value type="java.lang.Class">a.b.c.Foo</value>
   </property>
 </bean>
Run Code Online (Sandbox Code Playgroud)

这应该工作.


And*_*yle 11

你当然可以使用静态工厂方法 Class.forName(),如果没有更优雅的语法(我不相信):

<property name="x">
   <bean class="java.lang.Class" factory-method="forName">
      <constructor-arg value="a.b.c.Foo"/>
   </bean>
</property>
Run Code Online (Sandbox Code Playgroud)