一、切入點
bf = new XmlBeanFactory(new ClassPathResource("bean.xml"));
User user = bf.getBean("user", User.class);
user = bf.getBean("user", User.class);
User.java
public class User implements BeanFactoryAware, BeanNameAware,
InitializingBean, DisposableBean {
private Long id;
private String name;
private BeanFactory beanFactory;
private String beanName;
public User() {
System.out.println("【構造器】調用User的構造器實例化");
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
System.out.println("【注入屬性】注入屬性name");
this.name = name;
}
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
@Override
public void setBeanName(String name) {
this.beanName = name;
}
@Override
public void destroy() throws Exception {
System.out.println("【DiposibleBean接口】調用DiposibleBean.destory()");
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("【InitializingBean接口】調用InitializingBean.afterPropertiesSet()");
}
// 通過<bean>的init-method屬性指定的初始化方法
public void myInit() {
System.out.println("【init-method】調用<bean>的init-method屬性指定的初始化方法");
}
// 通過<bean>的destroy-method屬性指定的初始化方法
public void myDestory() {
System.out.println("【destroy-method】調用<bean>的destroy-method屬性指定的初始化方法");
}
}
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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="beanPostProcessor" class="com.gupao.container.MyBeanPostProcessor">
</bean>
<bean id="instantiationAwareBeanPostProcessor" class="com.gupao.container.MyInstantiationAwareBeanPostProcessor">
</bean>
<bean id="beanFactoryPostProcessor" class="com.gupao.container.MyBeanFactoryPostProcessor">
</bean>
<bean id="user" class="com.gupao.domain.User" init-method="myInit"
destroy-method="myDestory" p:name="張三" lazy-init="false"/>
</beans>
待補充