Добрый вечер!
Разбираюсь с Spring и столкнулся с непониманием ситуации. Объясните пожалуйста, почему при использовании аннотации factory-method в bean этот bean запускается первым?
Вот пример XML:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"
default-init-method="turnOnLights"
default-destroy-method="turnOffLights">
<bean id="duke" class="springidol.impl.Juggler">
<constructor-arg value="15"/>
</bean>
<bean id="poeticDuke" class="springidol.impl.PoeticJuggler">
<constructor-arg value="15"/>
<constructor-arg ref="sonnet29"/>
</bean>
<bean id="sonnet29" class="springidol.impl.Sonnet29"/>
<bean id="theStage"
class="springidol.Stage"
factory-method="getInstance"/>
<bean id="auditorium" class="springidol.Auditorium"/>
</beans>
Вот класс с созданием бинов:
public class SpringIdolMain {
public static void main(String[] args) {
ApplicationContext context
= new ClassPathXmlApplicationContext("spring-idol.xml");
Performer jungler = (Performer) context.getBean("poeticDuke");
try {
jungler.perform();
} catch (PerformanceException e) {
e.printStackTrace();
}
Auditorium auditorium = (Auditorium) context.getBean("auditorium");
((ConfigurableApplicationContext) context).close();
}
}
Вот вывод на консоль:
STAGE CREATED
LIGHTS ON
JUGGLING 15 BeanBAGS
While reciting..
LIGHTS OFF
Почему STAGE CREATED идет первым? Если закомментить данный бин в XML и запустить программу по новой, то ошибок не будет.
Продвижение своими сайтами как стратегия роста и независимости