Подтвердить что ты не робот

Spring синтаксис для установки объекта класса?

Есть ли способ установить свойство в 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 также работает.

4b9b3361

Ответ 1

<bean>
   <property name="x">
      <value type="java.lang.Class">a.b.c.Foo</value>
   </property>
 </bean>

Это должно работать.

Ответ 2

Конечно, вы можете использовать метод static factory Class.forName(), если нет более элегантного синтаксиса (и я не верьте, есть):

<property name="x">
   <bean class="java.lang.Class" factory-method="forName">
      <constructor-arg value="a.b.c.Foo"/>
   </bean>
</property>

Ответ 3

Нет. С тегом bean вы инструктируете Spring о том, как создать экземпляр класса.

Ответ 4

Будет ли < свойство name= "x" class= "a.b.c.Foo.class" > Работа? Это должен быть экземпляр объекта класса...