Spring Bean的生命周期例子
以下例子源于: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的生命周期例子相关推荐
- 字节跳动面试题:“请你描述下 Spring Bean 的生命周期?”
1. 引言 "请你描述下 Spring Bean 的生命周期?",这是面试官考察 Spring 的常用问题,可见是 Spring 中很重要的知识点. 我之前在准备面试时,去网上搜过 ...
- 简述 Spring Bean的生命周期
"请你描述下 Spring Bean 的生命周期?",这是面试官考察 Spring 的常用问题,可见是 Spring 中很重要的知识点. 其实要记忆该过程,还是需要我们先去理解,本 ...
- Spring bean 实现生命周期的三种解决方案
Spring bean 实现生命周期的三种解决方案 参考文章: (1)Spring bean 实现生命周期的三种解决方案 (2)https://www.cnblogs.com/javawebsoa/a ...
- 带你读懂Spring Bean 的生命周期,嘿,就是玩儿~
带你读懂Spring Bean 的生命周期,嘿,就是玩儿~ 一.前言 今天我们来说一说 Spring Bean 的生命周期,小伙伴们应该在面试中经常遇到,这是正常现象.因为 Spring Bean 的 ...
- 请解释Spring Bean 的生命周期?
Spring Bean 的生命周期简单易懂.在一个bean 实例被初始化时,需要执行一系列的初始化操作以达到可用的状态.同样的,当一个bean 不在被调用时需要进行相关的析构操作,并从bean 容器中 ...
- Spring Bean的生命周期及接口回调
本篇介绍Spring框架为Spring Bean生命周期各阶段提供的回调接口,程序通过实现回调接口,可以在IOC容器实例化或销毁Bean的过程中,得到Bean的控制权,并对Bean进行预处理工作.通过 ...
- Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...
- 再聊Spring Bean的生命周期
Spring Bean的生命周期是Spring面试热点问题.这个问题即考察对Spring的微观了解,又考察对Spring的宏观认识,想要答好并不容易!本文希望能够从源码角度入手,帮助面试者彻底搞定Sp ...
- 【Spring Bean的生命周期】
Spring Bean的生命周期(非常详细) - Chandler Qian - 博客园
最新文章
- redis开启远程连接
- crontab实例分析(转)
- qt 调用离线地图_Qt编写安防视频监控系统25-离线地图
- 浅析网站优化的站长们应该怎样安排自己的工作内容呢?
- Windows10 将 YOLOX模型转换为OpenVINO需要的IR文件
- 《漫画算法2》源码整理-7 第K大的数字
- BZOJ2822 [AHOI2012]树屋阶梯
- .NET Windows服务应用程序
- LeetCode 201. 数字范围按位与
- android 退出应用,如何停止服务,Android 完全退出当前应用程序的四种方法
- 会话(状态)管理Cookie与Session(二)
- sphinxPHP api全文检索的例子
- Power Apps函数笔记
- Python为何能上位碾压Java?
- echarts 词云图使用 + vue
- 39 Flutter仿京东商城项目 收货地址列表、增加 修改收货地址布局、弹出省市区选择器...
- web界面测试用例(shelley_shu)
- PHP使用web3还原助记词
- Python 协议攻击脚本(六): STP攻击
- 维修工程师,比你想象的要赚钱
热门文章
- 我们为什么要学习3D建模?
- 【TensorFlow】TensorFlow函数精讲之tf.clip_by_value()
- 教程|YOLOX目标检测ncnn实现
- 内卷加速 | 本科毕业出国率下降,考研or保研?
- 深度强化学习-Policy Gradient基本实现
- 知识技能归档-SSL协议20210325
- MySQL关联eclipse_MySQL JDBC 连接数据库基本操作
- dismiss android,[转]Android对话框中dismiss和cancel、hide的区别
- ROS-创建功能包和节点
- 基于STM32F4的舵机控制