Я учусь весной, и я запуталась в инициализации, разрушающие метод и конструктор частьSpring методы инициализации
Это spring-config.xml
<bean id="msgBean" class="com.example1.MessagesBean" init-method="start">
</bean>
<bean name="carBean" class="com.example2.Car" init-method="initEngine">
<constructor-arg ref="engineBean" />
</bean>
<bean id="engineBean" class="com.example2.Engine" />
Это Car.java
public class Car {
private Engine engine;
public Car(Engine engine){
System.out.println("Inside Car constructor");
this.engine = engine;
}
public void startCarEngine(){
engine.startEngine();
}
private void initEngine(){
System.out.println("heating up engine");
}
}
Это Engine.java
public class Engine {
public Engine(){
System.out.println("Inside Engine constructor");
}
public void startEngine(){
System.out.println("Engine is starting...");
}
}
Это MessageBean.java
public class MessagesBean {
private static final String HELLO_WORLD = "Hello World";
public MessagesBean(){
System.out.println("Printing " + HELLO_WORLD);
}
public void start(){
System.out.println("Step 2.Bean is starting");
}
}
Это мой Main class
AbstractApplicationContext abstractAppContext = new ClassPathXmlApplicationContext("spring-config.xml");
MessagesBean msgBean2 = abstractAppContext.getBean("msgBean", MessagesBean.class);
Это мой output
Printing Hello World
Step 2.Bean is starting
Inside Engine constructor
Inside Car constructor
heating up engine
Мой вопрос я назвал только MessageBean
в моем главном классе, и это, как предполагается, звоните только MessageBean Constructor
и init
, но почему вызваны два других компонента beans и метод init, или я сделал что-то неправильно? Что делать, если у меня есть разные методы init, destroy для разных bean-компонентов, и я хочу только инициализировать/вызывать конкретные конструкторы bean (-ов) и методы init?
Если пометить его для ленивой инициализации, он будет создавать бобы лениво. По умолчанию он нетерпелив. – Atul
read thishttp: //docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html – yeppe