Spring管理的对象的生命周期
注:完整代码在文章最后
生命周期:就是某个对象从创建到最终销毁整个过程当中会经历的历程!
通常,需要讨论生命周期时,对应的数据类型的对象都不是由开发人员自行维护的!
被容器维护的对象,都是由容器创建对象,并在适当的时候调用其中的某些方法的!而开发人员需要做的就是“确定满足某条件的时候应该执行什么任务”!也就是说,“容器决定什么时候执行,开发人员决定执行时做什么”。
学习生命周期的意义就是“知道在什么时候需要做什么事情”!
以Servlet
为例,其生命周期中会有几个特殊的方法,在特定的情况下会被调用,这些就称之为生命周期方法:
init()
:当Servlet
被创建对象后,立即执行,且只执行1次,该方法适合编写一些初始化相关的代码;service()
:当接收到匹配的请求后会被调用,接收到多少次请求,就执行多少次该方法;destroy()
:当Servlet
对象即将被销毁之前执行,且只执行1次,该方法适合编写一些与结束相关的代码,例如关闭等等。
当使用Spring框架后,某些类的对象交给Spring框架来管理了,那么,这些对象在什么时候被创建、什么时候被销毁,以及创建过程和销毁过程中需要执行某些代码,对于开发人员来说,一定程度上是不可控的!
Spring框架允许用户在类中自定义最多2个方法,分别表示“初始化方法”和“销毁方法”,并且,Spring框架会在创建对象之后自动调用初始化方法,会在销毁对象之前调用销毁方法!
关于方法的定义:
- 访问权限:应该使用
public
权限; - 返回值类型:使用
void
; - 方法名称:自定义;
- 参数列表:空。
例如,在User
类中自定义2个生命周期方法:
public void init() {System.out.println("User.init()");
}public void destroy() {System.out.println("User.destroy()");
}
然后,在配置对象的方法之前的@Bean
注解中配置这2个方法作为生命周期方法:
@Bean(initMethod="init", destroyMethod="destroy")
public User user() {return new User();
}
全部代码:
User类
public class User {public User() {System.out.println("User.User()");}public void init() {System.out.println("User.init()");}public void destroy() {System.out.println("User.destroy()");}
}
Beans类:
public class Beans {@Bean(initMethod = "init",destroyMethod = "destroy")//@Scope ("prototype")public User user() {return new User();}
}//Demo主类:public class Demo {public static void main(String[] args) {//获取容器AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(Beans.class);//获取对象User user1 = ac.getBean("user",User.class);User user2 = ac.getBean("user",User.class);User user3 = ac.getBean("user",User.class);//测试System.out.println(user1);System.out.println(user2);System.out.println(user3);//关闭资源ac.close();}
}
Spring管理的对象的生命周期相关推荐
- (转)Spring管理的Bean的生命周期
http://blog.csdn.net/yerenyuan_pku/article/details/52834011 bean的初始化时机 前面讲解了Spring容器管理的bean的作用域.接着我们 ...
- [原创]java WEB学习笔记94:Hibernate学习之路---session 的管理,Session 对象的生命周期与本地线程绑定...
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 把对象的创建交给spring来管理—— 1.创建bean的三种方式 2.bean对象的作用范围 3.bean对象的生命周期
把对象的创建交给spring来管理 spring对bean的管理细节 1.创建bean的三种方式 2.bean对象的作用范围 3.bean对象的生命周期 创建Bean的三种方式 ...
- Spring学习笔记09 - 对象的生命周期
对象的生命周期 什么是对象的生命周期 一个对象的创建.存活.消亡的一个完整过程. 为什么要学习对象的生命周期? (由程序员控制的 创建对象 就使用new,User user = new User() ...
- spring一: 容器以及bean生命周期
spring框架的几个优点: 1. 轻量级 2. 针对接口编程,解耦合 3. aop编程 4. 方便集成各种优秀框架 5.非侵入式 6.容器 IOC(Inversion of Cont ...
- Spring IOC:bean的生命周期与@Autowire(1)
全系列文章: <Spring IOC:bean的生命周期与@Autowire(1)> <Spring IOC:bean的生命周期与@Autowire(2)> <Sprin ...
- Java 对象的生命周期
Java对象的生命周期 在Java中,对象的生命周期包括以下几个阶段: 创建阶段(Created) 应用阶段(In Use) 不可见阶段(Invisible) 不可达阶段(Unreachable) 收 ...
- Hibernate学习(4)- Hibernate对象的生命周期
1.Hibernate对象的生命周期(瞬时状态.持久化状态.游离状态) 1.瞬时状态(Transient): 使用new操作符初始化的对象就是瞬时状态,没有跟任何数据库数据相关联: 2.持久化状态(P ...
- Java对象的生命周期与作用域的讨论(转)
导读: Java对象的生命周期大致包括三个阶段:对象的创建,对象的使用,对象的清除.因此,对象的生命周期长度可用如下的表达式表示:T = T1 + T2 +T3.其中T1表示对象的创建时间,T2表示对 ...
最新文章
- 正则表达式懒惰贪婪和replace函数
- linux socket recv函数 MSG_PEEK标志介绍
- Java培训总结:过滤器链的实现方法、配置和案例分析
- 计算机网络实验3:网络设备基本配置
- ubuntu连接有线局域网后无法使用无线网卡上网
- IP3 三阶交调截取点测试(转帖)
- 音乐计算机怎么用,如何利用电脑录制自己的歌曲(音乐)
- (26)HTML兼容写法
- 二叉树构造c语言实现,递归创建二叉树c语言实现+详细解释
- Linux中的 real user, effective user, saved set user 三种用户ID
- 建立良好人际关系的原则
- Java教程:Java分割字符串(spilt())
- mysql读取股票数据_读取股票数据存储到本地MySQL数据库(一)
- 电影票房排行 API数据接口
- LD3320语音识别模块+MP3-TF-16P模块实现语音交互功能
- 探索在原生网页中使用自定义数据属性
- 环境变量:用户变量和系统变量
- IntelliJ IDEA创建Servlet最新方法 Idea版本2021以及IntelliJ IDEA创建Servlet 404问题,找不到对应的路径。
- linux卸载gdb命令,Linux_Unix卸载gdb调试工具出现问题的解决方法, Unix系统通过命令能够卸载 - phpStudy...
- KYC功能介绍:为客户提供新的机会