2015-03-27 4 views
2

Возможно ли присвоить значение @Qualifier во время выполнения. Скажем, у меня есть два фасоли одного и того же типа и класса с инъекцией зависимостейЗначение значения Spring @Qualifier во время выполнения

<bean id="typeA" class="com.debopam.test.Type"> 
     <property name="typevalue" value="Export" /> 
    </bean> 
    <bean id="typeB" class="com.debopam.test.Type"> 
     <property name="typevalue" value="Import" /> 
    </bean> 

    public class Product { 
    private Integer price; 
    private String name; 

    @Autowired 
    @Qualifier("typeB") 
    private Type type; 

    public Integer getPrice() { 
     return price; 
    } 

    public void setPrice(Integer price) { 
     this.price = price; 
    } 

    public Type getType() { 
     return type; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

Есть ли способ определить тип в классе продукта во время выполнения вместо жесткого кодирования/с указанием значения? Если да, можете ли вы отправить какой-либо код, в противном случае целесообразно использовать ApplicationContext.getBean («bean name») для загрузки компонента во время выполнения?

+0

Посмотрите на это http://stackoverflow.com/questions/25590435/how-to-set-a-bean-qualifier -name-at-run-time-in-spring – Michael

+0

Возможный дубликат [Spring Qualifier и заполнитель свойств] (http://stackoverflow.com/questions/7812745/spring-qualifier-and-property-placeholder) –

ответ

-1

Да, я вижу, что вы определили два компонента для класса. Аннотация @Qualifier сообщит классу, какой bean-компонент должен использоваться из файла конфигурации пружины

Смежные вопросы