SpringBean用起来很方便,自动实例化对象,直接使用即可。你知道Bean对象生成和销毁是经过重重方法的吗,下面流程图中,每一个流程都有之对应的一个方法。
我们可以通过实现接口重写方法来自定义每个方法的实现。
public class PersonBean implements InitializingBean, BeanFactoryAware, BeanNameAware, DisposableBean { /** * 身份证号 */ private Integer no; /** * 姓名 */ private String name; //最先走的方法就是调用构造函数,创建具体对象 public PersonBean() { System.out.println("1.调用构造方法:我出生了!"); } public Integer getNo() { return no; } public void setNo(Integer no) { this.no = no; } public String getName() { return name; } public void setName(String name) { this.name = name; System.out.println("2.设置属性:我的名字叫" + name); } //BeanNameAware接口,通过这个接口设置bean的id @Override public void setBeanName(String s) { System.out.println("3.调用BeanNameAware#setBeanName方法:我的bean的名字叫做" + s); } // BeanFactoryAware 用于注入BeanFactory对象,能访问创建对象的BeanFactory。 @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { System.out.println("4.调用BeanFactoryAware#setBeanFactory方法:注入BeanFactory对象"); } // InitializingBean 接口 @Override public void afterPropertiesSet() throws Exception { System.out.println("6.InitializingBean#afterPropertiesSet方法:开始初始化"); } //在创建bean的时候,会走这个对应的初始化方法 public void init() { System.out.println("7.自定义init方法:自定义初始化"); } //销毁一个bean对象 @Override public void destroy() throws Exception { System.out.println("9.DisposableBean#destroy方法:开始销毁"); } public void destroyMethod() { System.out.println("10.自定义destroy方法:自定义销毁"); } public void work() { System.out.println("Bean使用中~~~~"); } }
客户端和最终实现: