0
我正在使用Spring DI版本4.2。 我的「applicationContext.xml」內容如下。調用Spring中的postProcessBeforeInitialization(),init()和postProcessAfterInitialization()方法的順序
<bean id="bObj1" class="com.springExample.B" scope="prototype" init-method="init" destroy-method="destory" />
下面是我的班 「com.springExample.B」
public class B implements BeanPostProcessor {
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("In class B, Method postProcessBeforeInitialization()");
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("In class B, Method postProcessAfterInitialization()");
return bean;
}
public void init() {
System.out.println("In class B, Method init()");
}
public void m3() {
System.out.println("In class B, Method m3()");
}
public void destory() {
System.out.println("In class B, Method destory()");
}
}
我看過的生命週期方法的調用順序如下。
- postProcessBeforeInitialization()
- 的init()
- postProcessAfterInitialization()
我創建Spring容器並調用Bean的如下
ApplicationContext ac = new ClassPathXmlApplicationContext("ApplicationContext.xml");
B b = ac.getBean("bObj1", B.class);
b.m3();
我寫SOP聲明在類「com.springExample.B」的所有方法中。當我運行代碼時,我得到的輸出如下。
In class B, Method init()
In class B, Method postProcessBeforeInitialization()
In class B, Method init()
In class B, Method postProcessAfterInitialization()
In class B, Method m3()
我不明白爲什麼init()方法是postProcessBeforeInitialization之前(稱呼)?
能否請你告訴問題 – sForSujit
@sForSujit您的B級 - 在我的問題增加了B級。 – noble