Ответ 1
<bean>
<property name="x">
<value type="java.lang.Class">a.b.c.Foo</value>
</property>
</bean>
Это должно работать.
Есть ли способ установить свойство в spring to, а не экземпляр класса, но сам объект класса? то есть.
Вместо
<bean>
<property name="prototype" class="a.b.c.Foo">...
дает вам экземпляр "Foo", что-то вроде:
<bean>
<property name="prototype" class="java.lang.Class" value="a.b.c.Foo.class"...
изменить: наилучшее (рабочее) решение - используйте обычное создание экземпляра и выведите класс в сеттер. Что касается решений, я думаю, что это мы будем описывать как "обман":
<bean class="Bar">
<property name="prototype" class="a.b.c.Foo">...
public class Bar{
public void setPrototype(Object o){
this.prototypeClass=o.getClass();
изменить: dtsazza также работает.
изменить: метод pedromarce также работает.
<bean>
<property name="x">
<value type="java.lang.Class">a.b.c.Foo</value>
</property>
</bean>
Это должно работать.
Конечно, вы можете использовать метод static factory Class.forName(), если нет более элегантного синтаксиса (и я не верьте, есть):
<property name="x">
<bean class="java.lang.Class" factory-method="forName">
<constructor-arg value="a.b.c.Foo"/>
</bean>
</property>
Нет. С тегом bean вы инструктируете Spring о том, как создать экземпляр класса.
Будет ли < свойство name= "x" class= "a.b.c.Foo.class" > Работа? Это должен быть экземпляр объекта класса...