Spring学习笔记(2)-Spring中bean的生命周期
来源:互联网 发布:ubuntu不显示输入法 编辑:程序博客网 时间:2024/04/29 13:46
Spring中bean的生命周期
本文添加了一个实现org.springframework.beans.factory.config.BeanPostProcessor接口的bean,此bean并非为某个bean而建,它将影响所有bean的创建。本文中的该bean配置如下:
public class Part2Test implements BeanPostProcessor{@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName)throws BeansException {System.out.println("postProcessAfterInitialization: "+ beanName);return bean;}@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName)throws BeansException {System.out.println("postProcessBeforeInitialization: "+ beanName);return bean;}}在spring的xml配置文件中需要声明该bean才能生效:
<bean class="com.feng.test.part2.Part2Test"/>此时该bean就配置完成,他将在所有bean的init方法执行前后产生效果,本文将以创建一个id=user的bean,以此来展示一个bean从创建到销毁的生命周期。以下为该bean中的主要内容和xml中的配置
public class User { private int id; private String name; private String password; public User() { System.out.println("user constructor......"); } public int getId() { return id; } public void setId(int id) { System.out.println("set id"); this.id = id; } public String getName() { return name; } public void setName(String name) { System.out.println("set name"); this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { System.out.println("set password"); this.password = password; } public void init(){ System.out.println("user init........"); } public void destroy(){ System.out.println("user destroy......."); }}xml中的配置:
<bean id="user" class="com.feng.part2.User" init-method="init" destroy-method="destroy"> <property name="id" value="1"/> <property name="name" value="zhangsan"/> <property name="password" value="123456"/> </bean>
user bean的生命周期如下:
1.通过构造器生成bean实例,控制台输出user constructor......
2.set属性注入,控制台输出set id,set name,set password
3.将bean实例传递给bean后置处理器的postProcessBeforeInitialization方法,控制台输出postProcessAfterInitialization: user
4:bean中的初始化方法(init方法)启动,控制台输出:user init...........
5:.将bean实例传递给bean后置处理器的postProcessAfterInitialization方法,控制台输出postProcessAfterInitialization: user
6:此时user bean创建完成,可以对该bean进行操作
7:当ioc容器关闭时,调用user的销毁方法(destroy方法),控制台输出user destroy.......该bean的整个生命流程结束
注意,当你的bean实现一些额外接口时,该生命周期会多出一些步骤,例如若user类实现了org.springframework.beans.factory.BeanNameAware接口,则会在set属性注入后,执行setBeanName()方法(BeanNameAware接口的实现方法),总的执行顺序会多一步。
- Spring学习笔记(2)-Spring中bean的生命周期
- spring学习笔记2---bean的生命周期
- Spring 学习笔记---Bean的生命周期
- Spring学习笔记----Bean的生命周期
- Spring 学习笔记---Bean的生命周期
- Spring学习笔记之---bean的生命周期
- ssh学习:Spring中Bean的生命周期
- Spring学习笔记之Spring的bean生命周期
- Spring学习笔记之Spring的bean生命周期
- Spring学习(6)--Spring中bean的生命周期
- Spring中bean的生命周期
- Spring 中 Bean 的生命周期
- Spring 中bean 的生命周期
- Spring中Bean的生命周期
- Spring中bean的生命周期
- Spring中bean的生命周期
- Spring中bean的生命周期
- Spring中Bean的生命周期
- 对象的创建,访问类中的属性和方法
- 第5周项目1 三角形5(复制构造函数)
- 多态的典型例子(向上转型)
- 1015—P
- 内联函数
- Spring学习笔记(2)-Spring中bean的生命周期
- 《算法(第四版)》排序-----模板
- CodeForces 659C Tanya and Toys(贪心)
- 多态的实现
- SVM
- 二级指针作输入之内存模型三
- 安装Apache服务器
- hiahiahia
- 多态的典型例子