spring入门(4) spring中Bean的生命周期总结

Spring中Bean的生命周期,在学习spring的过程中bean的生命周期理解对学习spring有很大的帮助,下面我就分别介绍在 ApplicationContext和BeanFactory中Bean的生命周期。

1、在ApplicationContext中Bean的生命周期

生命周 期执行的过程如下:

1、需找所有的bean根据bean定义的信息来实例化bean

2、使用依赖注入,spring按bean 定义信息配置bean的所有属性

3、若bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递bean 的ID。

4、若bean实现了BeanFactoryAware接口,工厂调用setBeanFactory() 方法传入工厂自身。

5、若 bean实现了ApplicationContextAware()接口,setApplicationContext()方法会被调用

6、若BeanPostProcessor和 bean关联,

则它们的postProcessBeforeInitialization()方法被调用

7、若bean指定了init- method="init"方法、,它将被调用。

8、若有BeanPostProcessor和bean关联,

则它们的 postProcessAfterInitialization()方法被调用

注意:通过已上操作,此时的Bean就可以被应用的系统使用,并讲保 留在BeanFactory工厂中直到不再需要为止.但我们也可以通过9或者10进行销毁

9、若bean实现了DisposableBean接 口,distroy()方法被调用

10、如果指定了destroy-method="close"定制的销毁方法,就调用这个方法

案例分析:

创建一个实体Bean代码如下:

package www.csdn.spring.dao;  

import org.springframework.beans.BeansException;  

import org.springframework.beans.factory.BeanFactory;  

import org.springframework.beans.factory.BeanFactoryAware;  

import org.springframework.beans.factory.BeanNameAware;  

import org.springframework.beans.factory.DisposableBean;  

import org.springframework.beans.factory.InitializingBean;  

import org.springframework.context.ApplicationContext;  

import org.springframework.context.ApplicationContextAware;  

public class HelloDaoImpl implements BeanNameAware, BeanFactoryAware,  

InitializingBean, ApplicationContextAware, DisposableBean {  

private String content;  

public HelloDaoImpl() {  

System.out.println("----------HelloDaoImpl实例化");  

}  

public void setContent(String content) {  

System.out.println("----------通过依赖注入的内容是:" + content);  

this.content = content;  

}  

@Override

public void setBeanName(String beanId) {  

System.out.println("----------输出BeanId:" + beanId);  

}  

@Override

public void setBeanFactory(BeanFactory factory) throws BeansException {  

System.out.println("----------factory:" + factory.getClass());  

}  

@Override

public void setApplicationContext(ApplicationContext applicationContext)  

throws BeansException {  

System.out.println("----------" + applicationContext);  

}  

@Override

public void afterPropertiesSet() throws Exception {  

System.out.println("----------afterPropertiesSet");  

}  

public void init() {  

System.out.println("----------初始化方法");  

}  

@Override

public void destroy() throws Exception {  

System.out.println("----------bean被销毁");  

}  

public void close() {  

System.out.println("----------close");  

}  

}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索applicationcontext
, bean
, 方法
, system
, springframework
, public
, spring bean
, println
Bean的生命周期
spring bean生命周期、springbean的生命周期、spring bean 入门、bean的生命周期、bean生命周期,以便于您获取更多的相关知识。

时间: 2024-09-08 23:10:15

spring入门(4) spring中Bean的生命周期总结的相关文章

Spring Bean的生命周期详细介绍_java

Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring容器.这里,我们讲的也是 ApplicationContext中Bean的生命周期.而实际上BeanFactory也是差不多的,只不过处理器需要手动注册. 一.生命周期流程图: Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,这其中包含了一系列关

spring之Bean的生命周期

Bean的生命周期: Bean的定义--Bean的初始化--Bean的使用--Bean的销毁 Bean的定义 Bean 是 Spring 装配的组件模型,一切实体类都可以配置成一个 Bean ,进而就可以在任何其他的 Bean 中使用,一个 Bean 也可以不是指定的实体类,这就是抽象 Bean . Bean的初始化 Spring中bean的初始化回调有两种方法 一种是在配置文件中声明init-method="init",然后在一个实体类中用init()方法来初始化 另一种是实现Ini

Spring Bean的生命周期管理

本文来自阅读Life Cycle Management of a Spring Bean这篇文章所做的笔记和实验. 按图索骥 bean的生命周期 知识点 1. BeanNameAware接口 Spring Bean存活于容器之中,一般情况下spring bean对context的情况并不了解,如果希望某个bean知道自己在context中的代号:bean name,即可让该bean的类型实现BeanNameAware接口. package org.test.spittr.spi; import

j2ee-Spring ApplicationContext Bean的生命周期是怎么样的?

问题描述 Spring ApplicationContext Bean的生命周期是怎么样的? spring 3.x企业应用开发实践一书中写道: ApplicationContext的初始化和BeanFactory有一个重大的区别:BeanFactory在初始化容器时,并未实例化Bean,直到第一次访问某个Bean时才实例目标Bean:而ApplicationContext则在初始化应用上下文时就实例化所有单实例的Bean. 但是在介绍ApplicationContext Bean的生命周期时,配

AppleWatch开发入门三——代码交互与控制器生命周期

AppleWatch开发入门三--代码交互与控制器生命周期 一.引言         在前两篇博客中,讨论了关于watch开发中框架与界面布局相关,然而主要的逻辑,终究还是要通过代码来实现的,在我们创建了项目之后,就会生成InterfaceController这个文件,它就是我们storyBoard中的入口视图控制器. 二.代码交互与控制器声明周期         storyBoard中的控件我们可以通过拖拽的方式关联到文件中,Action和Outlet两种关联方式基本可以达到我们修改控件和处理

path-android中关于Activity生命周期的方法只有两个 onCreate,onResume

问题描述 android中关于Activity生命周期的方法只有两个 onCreate,onResume public class BolgDetailActivity extends SuperActivity implements OnClickListener{ @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.

Bean的生命周期

原文:Bean的生命周期 1.实现各种生命周期控制访问的NewCar package com.beanprocess; import org.springframework.beans.BeansException; import org.springframework.beans.factory.*; /** * Created by gao on 16-3-18. */ public class NewCar implements BeanFactoryAware,BeanNameAware

Android开发中Activity的生命周期及加载模式详解

本文给大家介绍Activity的生命周期,如果大家学习过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类似.生命周期,并不难理解.一个人的生命周期莫过于生老病死,花儿的生命周期就是花开花谢了.在Android中Activity的生命周期莫过于Activity的创建到消亡的过程了.本篇博客就会介绍Activity生命周期中的不同阶段,通过实例的形式来窥探一下Activity的生命周期.搞明白Activity的生命周期是至关重要的,因为只有搞明白每

Spring在 IOC 容器中 Bean 之间的关系

一.在 Spring IOC 容器中 Bean 之间存在继承和依赖关系. 需要注意的是,这个继承和依赖指的是 bean 的配置之间的关系,而不是指实际意义上类与类之间的继承与依赖,它们不是一个概念. 二.Bean 之间的继承关系. 1.被继承的 ban 称为父 bean,继承这个父 bean 的 bean 称为子 bean.父 bean 可以通过指定 abstract 属性来声明为抽象的,子 bean 通过指定 parent 属性来指定父 bean 的引用. 2.子 bean 从父 bean 中