spring中bean的生命周期是怎么样的

 我来答
洒下了句点KEY
2013-02-27
知道答主
回答量:3
采纳率:100%
帮助的人:1.9万
展开全部
spring中bean完整的生命周期:
1,实例化(当我们加载beans.xml文件)实例化到内存。证明:它会调用bean里面的无参构造。
2,设置属性值(调用set方法设置属性)。
3,如果实现了BeanNameAware则调用BeanNameAware接口的setbeanFatroy()方法,获取Bean的id
4,如果实现了BaneFactoryAware则可以获取BeanFactory。,
5,如果实现了ApplicationAware则可以获取ApplicationAware。
6,如果bean和一个后置处理器关联(实现BeanPostProcessor接口),则会自动去调用 postProcessBeforeInitialization
7,如果实现了InitializingBean则会调用afterPropertiesSet方法。
8,如果在配置了<bean init-method="init" />就可以在bean中定义自己的初始化方法。
9,如果bean和一个后置处理器关联(实现BeanPostProcessor接口),则会自动去调用 postProcessAfterInitialization
10,使用我们的bean。
11,容器关闭。
12,可以通过实现DisposableBean接口来调用destroy()的销毁方法。
13,可以在配置中,<bean destroy-method="destroy">,在bean中写销毁方法。
地表最帅175
高粉答主

2018-03-31 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:152
采纳率:0%
帮助的人:4.3万
展开全部

1.Spring对Bean进行实例化(相当于程序中的new Xx())。

2.Spring将值和Bean的引用注入进Bean对应的属性中

3.如果Bean实现了BeanNameAware接口,Spring将Bean的ID传递给setBeanName()方法。

(实现BeanNameAware清主要是为了通过Bean的引用来获得Bean的ID,一般业务中是很少有用到Bean的ID的)。

4.如果Bean实现了BeanFactoryAware接口,Spring将调用setBeanDactory(BeanFactory bf)方法并把BeanFactory容器实例作为参数传入。

(实现BeanFactoryAware 主要目的是为了获取Spring容器,如Bean通过Spring容器发布事件等)。

在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称prototype),Spring2.0以后,增加了session、request、global session三种专用于Web应用程序上下文的Bean。因此,默认情况下Spring2.0现在有五种类型的Bean.

当一个bean的作用域设置为singleton,那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。换言之,当把一个bean定义设置为singleton作用域时,Spring IOC容器只会创建该bean定义的唯一实例。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7c862feee
2011-03-09
知道答主
回答量:45
采纳率:0%
帮助的人:25.5万
展开全部
默认是单例的。就是你每次用的都是同一个对象。spring不会新创建的;
然后还有prototype 如果是这个作用域的话就是每次都会创建新的
现在还有session 。。。
你可以收索spring 的作用域。。都有很多详细的解释的;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式