@Configuration
позволяет внутренние зависимости. Означает ли это, что вызвав метод создания одного бина из другого, можно сымитировать поведение атрибута ref
тега <property>
в xml
конфигурации?
@Bean( "bean1" )
public Bean1 bean1() {
Bean1 bean1 = new Bean1();
bean1.setBean2(bean2());
return bean1;
}
@Bean( "bean2" )
public Bean2 bean2() { return new Bean2(); }
Равнозначно ли тому же в xml
<bean id="bean1" class="Bean1">
<property name="bean2" ref="bean2"/>
</bean>
<bean id="bean2" calss="Bean2"/>
Или же для того чтобы добиться такого же результата как в xml
нужно использовать другой подход?
@Bean( "bean1" )
public Bean1 bean1() { return new Bean1(); }
@Bean( "bean2" )
public Bean2 bean2() { return new Bean2(); }
@Component
public class Bean1 {
@Autowired
priavate Bean2 bean2;
}
либо же, если черет сеттер
@Component
public class Bean1 {
priavate Bean2 bean2;
@Autowired
public void setBean2(Bean2 bean2) {
this.bean2 = bean2;
}
}
Думаю этот вариант будет ближе к вашему конфигу xml:
@Bean( "bean1" )
public Bean1 bean1(Bean2 bean2) {
Bean1 bean1 = new Bean1();
bean1.setBean2(bean2);
return bean1;
}
@Bean( "bean2" )
public Bean2 bean2() { return new Bean2(); }
Т.е. когда у метода есть параметры спринг ищет подходящий компонент в своём контексте и сам подставляет. Если не сможет найти, то кинет исключение.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите, а то уже всю голову сломал! Задача: У меня есть три таблицы, с помощью "поля со списком" я должен выбрать одну из них и в цикле вывести:
Как получить координаты точки B(конечная точка) используя панель маршрутизацииПо примеру из песочницы