Skip to main content

moregeek program

springboot启动过程(二)_wx633afb58d1650的博客-多极客编程

​​上一篇 ​​https://blog.51cto.com/u_15815563/5787667​

说到设置了初始化器。


设置listener

现在,同样的一套流程,这次要实例化的是实现了ApplicationListener的类,并存入listeners变量。


按照order排序,下面列出各个监听器的优先级顺序

第一,RestartApplicationListener, order=HIGHEST_PRECEDENCE=-2147483648,最高优先级。

第二,BootstrapApplicationListener,order=Ordered.HIGHEST_PRECEDENCE + 5 = -2147483643

第三,LoggingSystemShutdownListener,BootstrapApplicationListener.DEFAULT_ORDER + 1; 第二的顺序+1

第四,ConfigFileApplicationListener, Ordered.HIGHEST_PRECEDENCE + 10;

第五,AnsiOutputApplicationListener,ConfigFileApplicationListener.DEFAULT_ORDER + 1

第六,LoggingApplicationListener,Ordered.HIGHEST_PRECEDENCE + 20

第七,ClasspathLoggingApplicationListener,LoggingApplicationListener.DEFAULT_ORDER + 1

第八,BackgroundPreinitializer,LoggingApplicationListener.DEFAULT_ORDER + 1 (和第七是一样的大小)

第九,RestartListener, order=0

第十,DelegatingApplicationListener, order=0

第十一,ParentContextCloserApplicationListener, order=Ordered.LOWEST_PRECEDENCE - 10

第十二,DevToolsLogFactory.Listener ,无order设置,默认最低

第十三,ClearCachesApplicationListener,无order设置,默认最低

第十四,FileEncodingApplicationListener,显式最低,Ordered.LOWEST_PRECEDENCE

第十五,LiquibaseServiceLocatorApplicationListener,无order设置,默认最低


最后四个,都是最低优先级,有的没有设置,有的设置了是最低。

前八个多是SpringBoot系统级别的第一级别优先级梯队,都是很小的复数。


设置mainApplicationClass

在实例化的最后一步,是判断,运行main方法的主类。

方法如下

  private Class<?> deduceMainApplicationClass() {
try {
StackTraceElement[] stackTrace = new RuntimeException().getStackTrace();
for (StackTraceElement stackTraceElement : stackTrace) {
if ("main".equals(stackTraceElement.getMethodName())) {
return Class.forName(stackTraceElement.getClassName());
}
}
}
catch (ClassNotFoundException ex) {
// Swallow and continue
}
return null;
}

通过遍历堆栈,如果方法名是 main,就判定为启动的类。


至此,SpringApplication实例化结束。


下一步是执行run方法,在下一篇进行。


©著作权归作者所有:来自51CTO博客作者程序员kunpengku的原创作品,请联系作者获取转载授权,否则将追究法律责任

使用sshpass批量传递密钥实现ssh免密登录_我与linux的博客-多极客编程

sshpass介绍sshpass:用于非交互的ssh 密码验证使用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取1、从命令行方式传递密码sshpass -p user_password ssh user_name@192.168.1.2 【登录远程机器】sshpass -p user_password scp -P22 root@192.168.1.

高性能计算进化史_赵大奇的博客-多极客编程

前几天发了一篇高性能计算的从业经历回顾的文章,收到一封小伙伴的私信,让我说说高性能计算的发展历史。工作以来,一直在高性能计算行业打转,每天面对着各种服务器、小型机、超级计算机,对这些家伙还算熟悉,也见证了这些年,国内高性能计算从弱到强的发展历程。虽然和当下热门的手机、个人计算机行业相比,高性能计算是个冷僻的行业,知道的人不多,各种事件更是很少见诸报端,但是它在我们看不到的地方,很多新兴产业和科研生

arm64架构下,openjdk的官方docker镜像为何没有8版本?_github.com/zq2599的博客-多极客编程

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 为什么需要ARM64架构的OpenJDK8的Docker镜像 对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行,需要JDK8镜像作为基础镜像。 OpenJDK的官方Dockerfile

k8s如何调度pod_fly天地的博客-多极客编程

选择节点步骤k8s默认的调度器是kube-scheduler,它会为新创建的pod且未被调度的pod选择最合适的节点。这个过程如下过滤:节点是否有足够的资源满足请求资源条件,满足条件的节点被称为可调度节点打分:根据不同的条件对节点进行打分,调度器会把pod调度到得分最高的节点绑定:选出得分最高的节点后,调度器会把调度决定通知给kube-apiserver常用的打分条件nodeSelector通过指

arm架构下的docker环境,openjdk官方没有8版本镜像,如何完美解决?_github.com/zq2599的博客-多极客编程

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 为什么需要ARM架构下的OpenJDK8的Docker镜像? 对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行(或者其他ARM架构电脑,例如华为泰山服务器),需要JDK8镜像作为基础

记录一下阿里云ack的nodeport local cluster_对你无可奈何的博客-多极客编程

背景: 很久很近以前(恩200多天前了),创建了一个服务应用,使用了nodeport的方式对外暴露服务,划重点--控制台创建的网络服务: 过程就是这样的......一直相安无事。但是不明所以今天业务突然无法访问了(访问地址用了其中某一太的公网地址)......试着访问了一下有点怀疑防火墙,安全组?看了一眼都没有问题。kubeclt get pods -n develop 发现服务近期更新过...

hive例子_雍州无名的博客-多极客编程

1.hive实现wordcont例子创建表create table t_word_count_data(line string);导入本地数据(也可以导入hdfs上数(此时不需要加local)据如:/user/root/input/wc_data)load data local inpath '/lost+found/wc_data' overwrite into table t_word_cou

【服务器存储设备数据恢复】emc存储设备pool上数据卷被删除的数据恢复案例_sun的博客-多极客编程

服务器存储设备数据恢复环境: EMC某型号中端存储设备,支持block,file和vvol三种服务类型; 存储设备连接了2台硬盘柜,2台硬盘柜上面有2组互相独立的POOL,共21块520字节的硬盘。 服务器存储设备故障: 工作人员的误操作将2组POOL上的部分数据卷给删除了,一共有5个数据卷被删除。于是联系我们数据恢复中心进行数据恢复。 我们拿到故障存储设备的所有硬盘后先对所有硬盘进行镜像备份,并

前端展示中实现批量标签动态生成_葡萄城技术团队的博客-多极客编程

前端展示中实现批量标签动态生成 使用过报表的小伙伴,经常会有条码打印、标签打印的需求,一两个标签还好处理,但很多时候我们可能需要的是几十、上百个内容的批量打印,如下图所示: 今天我们就来为大家介绍,如何快速实现报表的标签条码批量打印。  项目实战 今天我们从Wyn出发,为大家展示整个功能的实现过程。 Wyn作为一款专业的商业智能软件,除了可以将整个仪表板和单个图表嵌入、仪表板设计器嵌入、分析门

truenas 企业级的开源磁盘柜标准配置_虚拟的现实的博客-多极客编程

1.简介在”​​LSI SAS 2208 阵列卡刷 IT 模式​​“一文中有提到对于需要大容量存储但又没有足够预算费用并且对功能和稳定性有一定要求的情况,FreeNAS(现在改名叫 TrueNAS)应该是不二选择。 专业的磁盘柜除了初始的采购价格昂贵(综合考虑主控性能、缓存数量、接口配置、功能要求等),后续的配件价格成本也不低,磁盘柜的磁盘远比市场上的磁盘价格高(同容量和性能情况下差不多2~3倍)

教你如何解决t+0的问题_华为云开发者社区的博客-多极客编程

摘要:T+0查询是指实时数据查询,数据查询统计时将涉及到最新产生的数据。本文分享自华为云社区《​​大数据解决方案:解决T+0问题​​》,作者: 小虚竹 。T+0问题T+0查询是指实时数据查询,数据查询统计时将涉及到最新产生的数据。在数据量不大时,T+0很容易完成,直接基于生产数据库查询就可以了。但是,当数据量积累到一定程度时,在生产库中进行大数据量的查询会消耗过多的数据库资源,严重时会影响交易业务

lsi sas 2208 阵列卡刷 it 模式_虚拟的现实的博客-多极客编程

1.前言对于需要大容量存储但又没有足够预算费用并且对功能和稳定性有一定要求的情况,FreeNAS(现在改名叫 TrueNAS)应该是不二选择。受 TrueNAS 内核驱动(FreeBSD)的影响,一些品牌服务器的低端存储卡不支持 IT 模式(硬盘 JBOD 直通模式)。本文的目的是将 LSI SAS 2208 的 RAID 卡(512M缓存)重刷固件使其支持 IT 模式。1.1.前期准备FreeD