首页 > 其他分享 >SmartLifecycle 使用介绍

SmartLifecycle 使用介绍

时间:2023-11-22 10:46:36浏览次数:27  
标签:SmartLifecycle stop 介绍 running springframework 使用 Override org public

参考 https://blog.csdn.net/feiying0canglang/article/details/127156520



import org.springframework.context.SmartLifecycle; import org.springframework.stereotype.Component; @Component public class MySmartLifecycle implements SmartLifecycle { private volatile boolean running = false; @Override public boolean isAutoStartup() {
     // 返回true 才能自动执行 start() 方法 return true; } @Override public void stop(Runnable callback) {
     // 结束应用后会调用 System.out.println("stop(callback)"); // stop(); callback.run(); } @Override public void start() { System.out.println("start()"); running = true; } @Override public void stop() {
System.out.println("stop()"); running = false; } @Override public boolean isRunning() { System.out.println("isRunning " + running); return running; } @Override public int getPhase() {
    // 数字越小,执行顺序越靠前 return 0; } }

 

说明:

  1. stop(Runnable callback) ,结束应用后,会自己执行。
  2. stop() 不会自己执行,要手动调用。
  3. isAutoStartup() 返回 true,才能执行 start() 。

 

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.DefaultLifecycleProcessor;

@Configuration
public class MySmartLifecycleConfig {

  // 执行异步 stop(Runnable runnable)关闭的 超时 方法 @Bean public DefaultLifecycleProcessor defaultLifecycleProcessor(){ // 默认是30秒 private volatile long timeoutPerShutdownPhase = 30000L; DefaultLifecycleProcessor defaultLifecycleProcessor = new DefaultLifecycleProcessor(); defaultLifecycleProcessor.setTimeoutPerShutdownPhase( 30000L); return defaultLifecycleProcessor; } }

 

标签:SmartLifecycle,stop,介绍,running,springframework,使用,Override,org,public
From: https://www.cnblogs.com/wuyicode/p/17848427.html

相关文章

  • Python在使用pandas时内存使用过大导致服务器宕机,有哪些优化方法?
    当使用pandas处理大规模数据时,内存使用量可能会迅速增加,导致服务器宕机。为了解决这个问题,可以采用以下几个优化方法:数据类型优化:使用更小的数据类型,例如将int64转换为int32或int16,节省内存空间。对于字符串类型,尽量使用'category'类型,它会使用更少的内存。分块处理:使......
  • Terraform专题精讲——为什么使用 Terraform
    为什么使用Terraform一、什么是基础设施即代码?https://aws.amazon.com/cn/what-is/iac/ 亚马逊AWS最早提出了基础设施即代码(InfrastructureasCode,简称IaC)的概念。基础设施即代码(IaC)是指使用代码而不是手动流程和设置来配置和支持您的计算基础设施的能力。任何应用程序环......
  • C#使用随机数生成元素不重复的数组
    通过for与while的嵌套做了一个排除相同数字的审查机制,如果生成了数组中已有的数字就重新生成一个数字,继续循环排查,直到生成的数字是数组中不存在的数字数组长度不能超过随机数范围否则会死循环usingSystem;namespacenotRepeat{classProgram{staticvo......
  • Civil 3D使用COM API时对象版本号的查询方法
     查询对象版本有多种方法,方法一:在developer'sguide中查找,APIDeveloper'sGuide→AbouttheDeveloper'sGuide→NewFeaturesintheAutoCADCivil3DAPI→COMChanges这里有详细的介绍,不仅有当前的版本,还有上一版的版本号。方法二:在AutoCAD命令行中输入命令AeccVersio......
  • 使用数据库工具连接 mendix默认数据库(HSQL)
    1.先启动数据库cmd下执行(注意路径) : java-cporg.hsqldb.hsqldb-2.7.1.jarorg.hsqldb.server.Server--database.0file:default\default--dbname.0default界面显示  再确认目录下正确产生了.lck文件(锁定文件,用于指示数据库是否正在被其他进程或实例使用)2.......
  • 三、Linux基本使用和常用命令
    Linux基本使用和常用命令1、登录Linux操作系统方式1.图形化界面基于xwindowSystem显示框架开发由KDE(类似于苹果系统)、GNOME.v.3.0提供图形化桌面环境2.虚拟控制台文本方式(Ctrl+Alt+F3) 3.Web网页登录前提是需要打开网页控制台,由cock.pit程序提供‘’‘......
  • 关于 Mac 在 cocos creator 中如何使用 FGUI
    先在官方网下载对应的Mac的FGUI,网站如下:https://www.fairygui.com/download之后就一键式的打开就好,在这个界面上 选择自己对应的项目类型,之后创建即可,打开的面板如下: 最后在选择发布就好了,这里发布有两个文件 如果你想重新在打开这个布局的话,就可以在这个后缀名......
  • SpringCloud项目使用nacos配置
    SpringCloud项目pom.xml注意SpringCloud和SpringCloudAlibaba的版本对应。SpringCloudAlibabaVersionSpringCloudVersionSpringBootVersion2022.0.0.0*SpringCloud2022.0.03.0.22022.0.0.0-RC2SpringCloud2022.0.03.0.22022.0.0.0-RC1Spring......
  • Git学习笔记:基础使用
    本随笔用于记录随笔作者在一般情况下使用Git的一些步骤和操作,主要用于在经过一段时间没有使用Git后能够通过该随笔马上回忆起基础操作,所以该随笔一开始并不会介绍Git的高级特性。本随笔内容摘录自官方教程随笔作者还在学习当中,难免会出现书写上和技术上的错误,如果发现类似错误,欢......
  • 关于 ts(TypeScript)报错一行上方使用 // @ts-ignore来忽略错误问题
    比如你的代码当中是使用Ts写的脚本,那么可能会有一些出现报错的情况,那么这个时候你可以使用://@ts-ignore写上这个,你的代码就不会出现报错的情况了,比如下面的代码App.VS.getView("MainLineView")?.test();即使你的类名MainLineView没有写这个方法,也不会出现报错的问题,虽然简单......