当前位置: 首页 > 编程笔记 >

springboot关于容器启动事件总结

马涵蓄
2023-03-14
本文向大家介绍springboot关于容器启动事件总结,包括了springboot关于容器启动事件总结的使用技巧和注意事项,需要的朋友参考一下

在springboot 容器启动时,我们需要在启动过程中做一些操作,比如启动容器后,执行某些代码。

spring 提供了监听器,我们可以方便的实现这些操作。

在容器启动开始时:

package com.neo.filter;

import org.springframework.boot.context.event.ApplicationStartingEvent;
import org.springframework.context.ApplicationListener;

public class ApplicationStartingEventListener implements ApplicationListener<ApplicationStartingEvent> {
  @Override
  public void onApplicationEvent(ApplicationStartingEvent arg0) {
    System.err.println("ApplicationStartingEventListener");
  }

}

在容器启动完成后执行操作:

package com.neo.filter;

import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.core.Ordered;

public class ApplicationStartedEventListener implements ApplicationListener<ApplicationStartedEvent>,Ordered {

  @Override
  public void onApplicationEvent(ApplicationStartedEvent ev) {
    System.out.println("ApplicationStartedEventListener1");
  }
  @Override
  public int getOrder() {
    return 1;
  }

}

如果需要有顺序执行,我们可以实现Ordered接口,只越小,越先执行。

package com;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.neo.filter.ApplicationStartedEventListener;
import com.neo.filter.ApplicationStartedEventListener2;
import com.neo.filter.ApplicationStartingEventListener;

@SpringBootApplication
public class DemoApplication {

  public static void main(String[] args) {
    SpringApplication app=new SpringApplication(DemoApplication.class);
    app.addListeners(new ApplicationStartedEventListener());
    app.addListeners(new ApplicationStartingEventListener());
    app.addListeners(new ApplicationStartedEventListener2());
    app.run(args);
  }
}

以上就是关于springboot容器启动事件的相关知识点以及实例代码,感谢大家对小牛知识库的支持。

 类似资料:
  • 问题内容: 我使用以下命令创建了容器: 以下是命令: 真的没有太多要说的,我希望容器能启动并保持正常运行。这是日志: 问题答案: 您正在尝试运行,它是需要tty 才能运行的交互式外壳。使用,在“分离”模式下运行此命令实际上没有任何意义,但是您可以通过添加到命令行来做到这一点,以确保容器具有与其关联的有效tty并保持连接状态: 在启动分离的容器时,您通常会运行某种长期存在的非交互式进程(例如,或We

  • 问题内容: 这是我的第一个Spring Boot代码。不幸的是,它总是关闭。我希望它能够连续运行,以便我的Web客户端可以从浏览器中获取一些数据。 请指教。 谢谢 PS build.gradle是错误。 一旦我以粗体显示了以上内容,一切正常。我的应用程序上下文现在是正确的。谢谢戴夫 问题答案: 解决方法:该应用程序不是Web应用程序,因为它在类路径上没有嵌入式容器(例如Tomcat)。加一个固定的

  • 问题内容: 我有一个页面,其中通过ajax引入了内容。我遇到的问题是在内容加载后添加相关的事件侦听器。有没有办法告诉浏览器再次从头开始运行所有脚本? 以下是从页面顶部开始运行的简单代码示例,显然,通过AJAX引入的与’.RRCustomizeBox .customize’匹配的任何新html元素都不会具有以下click事件。 例如: 谢谢你的提示 约翰 问题答案: 您可以将所有初始化代码放在函数中

  • 我通过C API使用LXC,并简单地复制和粘贴了示例代码(如链接所示,但用我自己的函数名替换了)。然后从程序中的另一个代码块中调用它,我无法使容器正常启动。 调用只会返回false。如果我将第二个参数更改为start为0(意味着应该使用而不是/sbin/init),则start“成功”,但容器状态立即设置为,因此我无法连接到容器。 正在尝试通过设置获取日志: 只生成空文件。 想到这可能与我看到的另

  • 我有一个Ubuntu Xenial容器,在我的Arch Linux计算机上安装了amd64体系结构。容器工作正常。但是,当我第二次尝试启动容器时,出现以下错误: 容器启动失败。 要获得更多详细信息,请在前台模式下运行容器。 其他信息可以通过设置--logfile和--log优先级选项获得。 是什么原因造成的? 在使用-F、-logfile和--logpriority选项运行后得到了这个。 lxc开

  • 我想做的是,在运行compose up之后,在我的web本地主机中看到一个简单的html文件。但我在localhost的8080 8000 8009端口中看不到任何东西。 当我将yml更改为 上面写着 caner@vegan:~/ideaprojects/combabety$pwd/home/caner/ideaprojects/combabety$ls docker-compose.yml ht

  • CMD 容器启动命令 CMD 指令的格式和 RUN 相似,也是两种格式: shell 格式:CMD <命令> exec 格式:CMD ["可执行文件", "参数1", "参数2"...] 参数列表格式:CMD ["参数1", "参数2"...]。在指定了 ENTRYPOINT 指令后,用 CMD 指定具体的参数。 之前介绍容器的时候曾经说过,Docker 不是虚拟机,容器就是进程。既然是进程,那么

  • Ark 应用的整体启动流程如下图所述: 当用 java -jar 启动 Ark 包 或者 在 IDE 中通过 SofaArkBootstrap.launch 启动 Ark 应用时,相应 Launcher 入口会负责启动应用,其中会反射调用 ArkContainer 的入口,初始化 ArkService ,然后依次执行 pipeline,来完成整个 Ark 应用的启动。 ArkService Ark