以下例子源于:W3Cschool,在此作记录

HelloWorld.java

package com.how2java.w3cschool.beanlife;public class HelloWorld {private String message;public void getMessage() {System.out.println("Your message:" + message);}public void setMessage(String message) {this.message = message;}public void init() {System.out.println("Bean is going through init");}public void destroy() {System.out.println("Bean will destory now");}}

MainApp.java

package com.how2java.w3cschool.beanlife;                                                                                                           import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;                                                                         public class MainApp {                                                                                                                             public static void main(String[] args) {                                                                                                       AbstractApplicationContext context = new ClassPathXmlApplicationContext("beanlife.xml");                                                   HelloWorld obj = (HelloWorld) context.getBean("helloWorld"); //getBean是用来获取applicationContext.xml文件里bean的,括号内写的是对应的bean的id
        obj.getMessage();                                                                                                                          context.registerShutdownHook();  //需要注册一个在 AbstractApplicationContext 类中声明的关闭 hook 的 registerShutdownHook() 方法。它将确保正常关闭,并且调用相关的 destroy 方法。                                                                                                     }
}                                                                                                                                                  

beanlife.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:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/context     http://www.springframework.org/schema/context/spring-context-3.0.xsd"><bean id = "helloWorld"class = "com.how2java.w3cschool.beanlife.HelloWorld"init-method="init" destroy-method="destroy"> <property name="message" value ="Hello World!"></property></bean><!-- init-method 属性指定一个方法,在实例化 bean 时,立即调用该方法,destroy-method 指定一个方法,只有从容器中移除 bean 之后,才能调用该方法。并且,上面指定bean对应的类为 HelloWorld,因此会到该bean(类)下去找对应的方法并调用--></beans>

运行结果如下:

如果具有太多相同名称的初始化或者销毁方法的 Bean,那么并不需要在每一个 bean 上声明初始化方法销毁方法。框架使用元素中的 default-init-method 和 default-destroy-method 属性提供了灵活地配置这种情况,即,在beans的配置中加上default-init-method 和 default-destroy-method 属性即可,无须在每个bean中都写一次对应的inti和destroy方法。

转载于:https://www.cnblogs.com/Guhongying/p/10594290.html

Spring Bean的生命周期例子相关推荐

  1. 字节跳动面试题:“请你描述下 Spring Bean 的生命周期?”

    1. 引言 "请你描述下 Spring Bean 的生命周期?",这是面试官考察 Spring 的常用问题,可见是 Spring 中很重要的知识点. 我之前在准备面试时,去网上搜过 ...

  2. 简述 Spring Bean的生命周期

    "请你描述下 Spring Bean 的生命周期?",这是面试官考察 Spring 的常用问题,可见是 Spring 中很重要的知识点. 其实要记忆该过程,还是需要我们先去理解,本 ...

  3. Spring bean 实现生命周期的三种解决方案

    Spring bean 实现生命周期的三种解决方案 参考文章: (1)Spring bean 实现生命周期的三种解决方案 (2)https://www.cnblogs.com/javawebsoa/a ...

  4. 带你读懂Spring Bean 的生命周期,嘿,就是玩儿~

    带你读懂Spring Bean 的生命周期,嘿,就是玩儿~ 一.前言 今天我们来说一说 Spring Bean 的生命周期,小伙伴们应该在面试中经常遇到,这是正常现象.因为 Spring Bean 的 ...

  5. 请解释Spring Bean 的生命周期?

    Spring Bean 的生命周期简单易懂.在一个bean 实例被初始化时,需要执行一系列的初始化操作以达到可用的状态.同样的,当一个bean 不在被调用时需要进行相关的析构操作,并从bean 容器中 ...

  6. Spring Bean的生命周期及接口回调

    本篇介绍Spring框架为Spring Bean生命周期各阶段提供的回调接口,程序通过实现回调接口,可以在IOC容器实例化或销毁Bean的过程中,得到Bean的控制权,并对Bean进行预处理工作.通过 ...

  7. Spring Bean的生命周期(非常详细)

    Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...

  8. 再聊Spring Bean的生命周期

    Spring Bean的生命周期是Spring面试热点问题.这个问题即考察对Spring的微观了解,又考察对Spring的宏观认识,想要答好并不容易!本文希望能够从源码角度入手,帮助面试者彻底搞定Sp ...

  9. 【Spring Bean的生命周期】

    Spring Bean的生命周期(非常详细) - Chandler Qian - 博客园

最新文章

  1. redis开启远程连接
  2. crontab实例分析(转)
  3. qt 调用离线地图_Qt编写安防视频监控系统25-离线地图
  4. 浅析网站优化的站长们应该怎样安排自己的工作内容呢?
  5. Windows10 将 YOLOX模型转换为OpenVINO需要的IR文件
  6. 《漫画算法2》源码整理-7 第K大的数字
  7. BZOJ2822 [AHOI2012]树屋阶梯
  8. .NET Windows服务应用程序
  9. LeetCode 201. 数字范围按位与
  10. android 退出应用,如何停止服务,Android 完全退出当前应用程序的四种方法
  11. 会话(状态)管理Cookie与Session(二)
  12. sphinxPHP api全文检索的例子
  13. Power Apps函数笔记
  14. Python为何能上位碾压Java?
  15. echarts 词云图使用 + vue
  16. 39 Flutter仿京东商城项目 收货地址列表、增加 修改收货地址布局、弹出省市区选择器...
  17. web界面测试用例(shelley_shu)
  18. PHP使用web3还原助记词
  19. Python 协议攻击脚本(六): STP攻击
  20. 维修工程师,比你想象的要赚钱

热门文章

  1. 我们为什么要学习3D建模?
  2. 【TensorFlow】TensorFlow函数精讲之tf.clip_by_value()
  3. 教程|YOLOX目标检测ncnn实现
  4. 内卷加速 | 本科毕业出国率下降,考研or保研?
  5. 深度强化学习-Policy Gradient基本实现
  6. 知识技能归档-SSL协议20210325
  7. MySQL关联eclipse_MySQL JDBC 连接数据库基本操作
  8. dismiss android,[转]Android对话框中dismiss和cancel、hide的区别
  9. ROS-创建功能包和节点
  10. 基于STM32F4的舵机控制