Spring Boot 关闭钩子

2024-02-03

如何注册/添加在 Spring Boot 应用程序关闭时触发的自定义关闭例程?

场景:我将 Spring Boot 应用程序部署到 Jetty servlet 容器(即没有嵌入式 Jetty)。我的应用程序使用 Logback 进行日志记录,并且我想在运行时使用 Logback 的 MBean JMX 配置器更改日志记录级别。它的文档指出,为了避免内存泄漏,在关闭时必须调用特定的 LoggerContext 关闭方法 http://logback.qos.ch/manual/jmxConfig.html#leak.

监听 Spring Boot 关闭事件的好方法是什么?

我努力了:

public static void main(String[] args) throws Exception {
    ConfigurableApplicationContext cac = SpringApplication.run(Example.class, args);

    cac.addApplicationListener(new ApplicationListener<ContextClosedEvent>() {

        @Override
        public void onApplicationEvent(ContextClosedEvent event) {
            logger.info("Do something");
        }
    });
}

但是当应用程序关闭时,不会调用这个注册的侦听器。


https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#features.spring-application.application-exit https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#features.spring-application.application-exit

每个 SpringApplication 都会向 JVM 注册一个关闭钩子,以确保 ApplicationContext 在退出时正常关闭。可以使用所有标准 Spring 生命周期回调(例如 DisposableBean 接口或 @PreDestroy 注释)。

此外,如果 bean 希望在应用程序结束时返回特定的退出代码,则可以实现 org.springframework.boot.ExitCodeGenerator 接口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 关闭钩子 的相关文章

随机推荐

  • tableview图像内容选择颜色

    我的应用程序有一个带有图像和文本字段的表格视图 image 图像渲染为模板图像 浅灰色 文本字段 文本颜色黑色 如果我选择一行 两者的颜色都会完美地变为白色 问题 我将图像更改为蓝色图像 默认渲染 如果我现在选择一行 文本字段的文本颜色将更
  • 在 fp-ts 的管道中混合 Either 和 TaskEither

    当没有一个函数是异步的时 我有以下程序可以正常工作 interface Product count number pricePerItem number interface Tax tax number interface Delivery
  • UITableView 上的动画 reloadData

    你会怎样动漫 reloadData on UITableView 数据源已开启UIFetchedResultsController所以我不能玩 insertSections withRowAnimation deleteSections w
  • 从 UITableView 中的 URL 加载图像速度缓慢。

    我正在从 UITableView 中的 URL 加载图像 但加载视图时速度非常慢 这是一个例子 UIImage image nil image UIImage imageWithData NSData dataWithContentsOfU
  • asp.net c# 中是否有等效的 echo

    我有一个 php 代码 我已将其转换为 asp net 代码 PHP 代码只是回显客户端读取和解释的响应 但是在 asp net 中 生成的输出被迫采用 html 格式 这正是因为我使用 asp net 标签来打印输出 有没有一种方法可以实
  • 将整个文档移动到 iframe 中

    我想做的是将一个完整的网站包装在一个iframe不破坏任何样式或 JavaScript 这是我尝试过的 var frame css position fixed top 0 left 0 width 100 height 100 appen
  • Spring @Autowired 不工作 - BeanCreationException

    当我尝试在服务器上部署文件时发生错误 我很困惑 因为这段代码有效 例外 Failed to enable lec2ear 1 0 ear Unexpected HTTP response 500 Request address gt dep
  • 如何仅使用标准网络库发送 HTTP 响应?

    我正在 Web 编程课程中完成我的第一个作业项目 即用 Java 编写一个简单的 Web 服务器 我正处于来回传输数据的阶段 在未经训练的人看来 我的小型服务器似乎工作正常 但是 我找不到发送适当回复的方法 换句话说 无效的页面请求将显示
  • 现有字符串加倍

    如何将现有字符串更改为双精度字符串 我有这样的代码声明为字符串 但实际上它从数据库获取数字 我正在做数字转换 但现在我不想将其转换为字符串并将其一路获取为数字 private String example1 example1 new Str
  • 我可以拆分grails的config.groovy文件吗?

    由于里面有敏感代码config groovy文件 我担心我的朋友会犯这个文件中的错误 当得到svn更新后 我们也会得到有问题的配置代码 我可以将代码拆分为config groovy是否可以使敏感代码保持不变 而其他代码可以经常更改 在主配置
  • Matlab模拟:点(符号)从起点移动到终点并返回

    我想创建一个动画来演示基于 LDPC 编码和积算法 http en wikipedia org wiki Belief propagation 到目前为止 我已经创建了一个图表 显示符号节点 左 和奇偶校验节点 右 之间的连接替代文本htt
  • 您将如何使用 Sklearn 的 VotingClassifier 进行 RandomizedSearchCV ?

    我正在尝试调整我的投票分类器 我想在 Sklearn 中使用随机搜索 但是 由于我当前使用两种算法 不同的树算法 如何为我的投票分类器设置参数列表 我是否必须单独运行随机搜索并稍后在投票分类器中将它们组合在一起 有人可以帮忙吗 代码示例将受
  • Docker Maven Spotify 插件 - 可以切换到非安全注册表

    我正在使用Spotify Maven 插件 http mvnrepository com artifact com spotify docker maven plugin在执行某些 Maven 目标时自动构建和部署 docker 镜像 但是
  • jQuery if 语句,语法

    什么是一个简单的 jQuery 语句 该语句声明仅当 A 和 B 为 true 时操作才会继续 如果 A 不为真 则停止 如果 A 和 B 为真 则继续 jQuery 只是一个增强 Web 浏览器中 DOM 功能的库 底层语言是 JavaS
  • 使用 org.postgresql.core.Utils.escapeLiteral 足以防止 SQL 注入吗?

    在构建 SQL 查询和更新以提交到我的数据库之前 我需要清理一些用户输入的数据 我知道最好使用准备好的陈述 https www owasp org index php SQL Injection Prevention Cheat Sheet
  • 为什么 C++ 编译器不做更好的常量折叠?

    我正在研究加速大部分 C 代码的方法 该代码具有用于计算雅可比的自动导数 这涉及在实际残差中做一些工作 但大部分工作 基于分析的执行时间 是计算雅可比矩阵 这让我感到惊讶 因为大多数雅可比都是从 0 和 1 向前传播 所以工作量应该是函数的
  • 导入 R. (android)

    我已经通过 Stack Overflow 进行了搜索 因为我知道这是一个常见问题 但似乎没有一个解决方案适合我 这包括清理我的项目 删除所有导入 删除项目并完全重新开始 我正在使用 Eclipse 专门用于 mac 上的 android A
  • 使用最大流算法查找网络的边缘连通性

    我想使用最大流算法 Edmond Karp Ford Fulkerson 算法 找到无向图的边连通性 即要删除以断开图连接的最小边数 我知道我可以通过找到图的每两个节点之间的最小最大流量来完成此任务 但这将导致 O V 2 数量的流量网络
  • Twitter Bootstrap CSS 静态流体表单定位

    我正在使用 Twitter Bootstrap 框架尝试获得如下布局 现在看起来是这样的 jsFiddle 全屏 https jsfiddle net flackend YxKfc show jsFiddle https jsfiddle
  • Spring Boot 关闭钩子

    如何注册 添加在 Spring Boot 应用程序关闭时触发的自定义关闭例程 场景 我将 Spring Boot 应用程序部署到 Jetty servlet 容器 即没有嵌入式 Jetty 我的应用程序使用 Logback 进行日志记录 并