Spring-Lifecycle接口
如果一个类A实现Lifecycle接口,那么需要注意
1.A可以是任意一个容器中的Bean,A也可以是容器
2.当容器调用start或者close方法的时候,会根据A中的isRunning方法判断是否调用A中的start或者stop方法(回调)
下面定义一个A
@Component
public class MyLifeCycleBean1 implements Lifecycle {@Overridepublic void start() {System.out.println("start1");}@Overridepublic boolean isRunning() {System.out.println("isRunning1");return false;}@Overridepublic void stop() {System.out.println("stop1");}
}
简单阐述一下这个类的三个方法
start:如果类A没运行,则走该方法,如果类A已经运行,则不会走该方法
isRunning:返回true表示类A已经运行,返回false表示类A没运行
stop:如果类A正在运行,则走该方法,如果类A已经停止,则不走该方法
main方法1
public static void main(String[] args) {AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext("MyLifeCycleBean1所在包");ctx.start();ctx.close();
}
该方法会打印出
isRunning1
start1
isRunning1
当调用ctx的start方法的时候,ctx会先调用一下isRunning方法,由于isRunning方法一直返回false,ctx认为类A没有运行,所以ctx会调用start方法,表示让类A运行起来
当调用ctx的close方法的时候,同上,ctx会也会先调用一下isRunning方法,由于isRunning方法一直返回false,所以ctx认为类A压根就没有运行(停止状态),那么ctx就没必要再调用stop方法,所以没有打印出"stop1"
Spring-Lifecycle接口相关推荐
- 换一种方式编写 Spring MVC 接口
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 前言 通常我们编写 Spring MVC 接口的范 ...
- springbean的生命周期_spring bean生命周期(涵盖spring常用接口的载入)
spring bean生命周期流程图: 其中包含了很多常用的接口,可以参考spring 常用接口: 下面写个例子证明下: 1.实现InitializingBean以及各个Aware接口 p ...
- 护网必备技能:Spring Boot 接口数据加解密 功能实现
护网必备技能:Spring Boot 接口数据加解密 功能实现 文章目录 护网必备技能:Spring Boot 接口数据加解密 功能实现 1. 尽量少改动,不影响之前的业务逻辑: 2. 考虑到时间紧迫 ...
- Spring Boot 接口参数自动加解密
本文标题:Spring Boot 接口参数自动加解密 原始链接: https://www.shuibo.cn/102.html 许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链 ...
- spring注入接口
spring注入接口 spring为何要注入接口,而注入实现类就会报错? 如果只是单纯注入是可以用实现类接收注入对象的,但是往往开发中会对实现类做增强,如事务,日志等,实现增强的AOP技术是通过动态代 ...
- 如何使用 Arthas 定位 Spring Boot 接口超时 ?
以下文章来源方志朋的博客,回复"666"获面试宝典 来源:segmentfault.com/a/1190000020383866 背景 公司有个渠道系统,专门对接三方渠道使用,没有 ...
- 如何优雅的实现 Spring Boot 接口参数加密解密?
点击关注公众号,Java干货及时送达 加密解密本身并不是难事,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办法,这种方式虽然粗暴,但是灵活,因为可以拿到一手的请求参数和 ...
- Mybaits整合Spring自动扫描 接口,Mybaits配置文件.xml文件和Dao实体类
1.转自:https://blog.csdn.net/u013802160/article/details/51815077 1 <?xml version="1.0" en ...
- 如何使用 Arthas 定位 Spring Boot 接口超时
作者 | 空无 来源 | https://segmentfault.com/a/1190000020383866 背景 公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校 ...
- 一文带你了解Spring核心接口Ordered的实现及应用
前言 最近在看框架的时候,发现了这个接口,在此进行总结,希望能够给大家帮助,同时提升自己. order接口的大体介绍 Spring框架中有这个一个接口,名字叫Ordered,联想我们在数据库中应用的O ...
最新文章
- Ubuntu 14.04 64bit上编译安装MonaServer并测试
- 一夜暴富之前的漫漫长路
- Redis: 跳跃表
- Bootstrap整合ASP.NET MVC验证、jquery.validate.unobtrusive
- python字典的遍历方法_遍历python字典几种方法
- C++11多线程thread参数传递问题
- A5.2021年全国数学建模竞赛B题-赛题分析与评阅要点(乙醇偶合制备C4烯烃分析)
- 【Linux】awk处理变量
- validationEngine中文版 — jquery强大的表单验证插件,留着以后会用得上
- STM32中用 stop 模式 配合低功耗模式下的自动唤醒(AWU) 能否实现FreeRTOS tickless 模式...
- K8S学习笔记之MiniKube的搭建(VM虚拟机环境)
- keil软件安装与破解
- java中字符串逆序_[Java教程]一行代码实现字符串逆序输出
- 组装电脑超详细步骤(超多图+用了2个小时写的)
- 网络安全七大赛道:全面梳理(重磅深度)
- 用opencv在图片上面添加水印
- ARCGIS Pro试用申请教程以及登录页面脚本错误解决办法
- 有关matlab裁剪图片方面
- Android Wear 2.0首款手表来了;工信部明确增加物联网网号 | IoT黑板报
- 10个全网最具创意的聊天机器人:漫威和联合国儿童基金会都在尝试使用聊天机器人
热门文章
- CodeForces - 589A
- setint 的用法
- MySQL中的索引使用
- python写一个计时器_Python 实现一个计时器
- android随机数方法,Android生成随机数的方法实例
- boot客户管理系统实训报告_客户太多,客户转化困难?分析报告迟迟出不来,CRM客户管理系统助你一臂之力...
- c语言结构体tdl,计算机等级二级C笔试考前练习习题(21)
- mysql导入社工库文件_社工库-数据表结构设计和数据导入
- @Async异步功能
- idea2020.3升级lombok不能使用