当前位置: 首页 > news >正文

SpringBoot监听器

1.寻找spring.factories配置文件对应的监听器,主要要写监听器的全路径名,不然反射会报错

 

 

 SpringBoot底层是如何读取META-INF/spring.factories的配置的?

1.遍历所有jar下的META-INF/spring.factories配置文件

2.读取配置文件下的所有属性,放入map

3.配置文件主要来源于,

3.1.开发者自己放的 

 

 3.2 spring-boot的配置文件 

3.spring-boot-autoconfiguration配置文件

读取完后放入缓存中,主要有13个大类,分别是:

org.springframework.context.ApplicationListener             2个值

======================spring-boot================================

org.springframework.boot.env.PropertySourceLoader           2个值
org.springframework.boot.SpringApplicationRunListener       1个值
org.springframework.boot.SpringBootExceptionReporter        1个值
org.springframework.context.ApplicationContextInitializer   4个值
org.springframework.context.ApplicationListener             9个值
org.springframework.boot.env.EnvironmentPostProcessor       3个值
org.springframework.boot.diagnostics.FailureAnalyzer        13个值
org.springframework.boot.diagnostics.FailureAnalysisReporter  1个值

==================spring-boot-autoconfiguration================================

org.springframework.context.ApplicationContextInitializer  2个值
org.springframework.context.ApplicationListener            1个值
org.springframework.boot.autoconfigure.AutoConfigurationImportListener  1个值
org.springframework.boot.autoconfigure.AutoConfigurationImportFilter  3个值
org.springframework.boot.autoconfigure.EnableAutoConfiguration       118个值
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider 5个值

3个配置文件合并后,

ApplicationContextInitializer  6个值

ApplicationListener               12个值

SpringApplicationRunListener  1个

总共13大类

打开断点看看结果是否匹配:刚好6个,完全匹配

 

12个监听器:刚好完全匹配

 获取运行时监听器,刚好1个,完全匹配

org.springframework.boot.SpringApplication#getRunListeners

 org.springframework.boot.SpringApplicationRunListeners#starting

发布一个容器启动事件

 这里有四个监听器在监听容器启动事件

 

相关文章:

SpringBoot监听器

1.寻找spring.factories配置文件对应的监听器,主要要写监听器的全路径名,不然反射会报错 SpringBoot底层是如何读取META-INF/spring.factories的配置的? 1.遍历所有jar下的META-INF/spring.factories配置文件 2.读取配置文件下的所有属性&a…...

【网络安全】SQL注入--报错注入

报错注入报错注入定义代码展示常用的报错语句1.获取数据库名称2.获取mysql账号密码3.获取表名4.获取字段名5.获取账号密码报错注入定义 报错注入:利用sql语句的不规范,获取相关sql提示信息 代码展示 常用的报错语句 select first_name, last_name FROM…...

APP隐私整改建议

1、违规收集个人信息 情形一: APP首次启动时,未有以弹窗形式明示个人信息保护政策。 改进建议: APP首次启动时,以弹窗等形式向用户明示个人信息保护政策。 情形二: 个人信息保护政策未有说明个人信息处理的目的、方…...

MySQL数据模型 and 通用语法 and 分类

关系型数据库 关系型数据库是由多张能互相连接的二维表组成的数据库。 优点: 1.都是使用表结构,格式一致,易于维护。 2.使用通用的SQL语言操作,使用方便,可用于复杂查询。 3.数据存储在磁盘中,安全。 …...

一款识别域名是否使用cdn的工具cdnChecker

cdnChecker 一款识别域名是否使用cdn的工具 https://github.com/alwaystest18/cdnChecker 背景 红队打点时经常会有收集子域名然后转成ip进而扩展ip段进行脆弱点寻找的需求,如果域名使用cdn,会导致收集错误的ip段,因此我们需要排除cdn来收…...

Ant Design Vue的汉化

Ant Design Vue的汉化 1. 引入依赖 import zhCN from "ant-design-vue/lib/locale-provider/zh_CN"; // 汉化 export default {data () {zhCN,} }2. 标签包裹需要汉化的组件 <a-config-provider :locale"zhCN"><a-table :row-selection"ro…...

spring cloud中实现接口广播请求到服务提供者

一、背景 假如现在有一台服务A&#xff0c;两台服务B&#xff0c;可以简化为如下图模型&#xff1a; 需求&#xff1a;一次请求服务A需要同时将请求广播打到两台服务B上。 二、实现方案 2.1 需要应用到两个类&#xff1a; 2.1.1&#xff1a;LoadBalancerClient package org…...

电机PID参数调节笔记

规则1 1&#xff09;降低比例增益P&#xff0c;可以获得较小的振动2&#xff09;有可能不需要调节I环和D环3&#xff09;提升比例增益P环可以增加灵敏度&#xff0c;但可能会出现不稳定的情况&#xff08;如振动&#xff09;4&#xff09;可以设定电机速度最大幅值&#xff0c…...

【深度学习】基于华为MindSpore的手写体图像识别实验

1 实验介绍 1.1 简介 Mnist手写体图像识别实验是深度学习入门经典实验。Mnist数据集包含60,000个用于训练的示例和10,000个用于测试的示例。这些数字已经过尺寸标准化并位于图像中心&#xff0c;图像是固定大小(28x28像素)&#xff0c;其值为0到255。为简单起见&#xff0c;每…...

Linux:内核调试之内核魔术键sysrq

在linux系统下&#xff0c;我们可能会遇到系统某个命令hang住的情况&#xff0c;通常情况下&#xff0c;我们会查看/proc/pid/wchan文件&#xff0c;看看进程处于什么状况&#xff0c;然后进一步查看系统日志或者使用strace跟踪命令执行时的系统调用等等方法来分析问题。我们知…...

Python import导包快速入门

import 和 from import 在 Python 中&#xff0c;使用 import 语句可以将其他 Python 模块或包中的代码引入到当前模块中&#xff0c;以供使用。通常情况下&#xff0c;我们可以使用以下语法将整个模块导入到当前命名空间中&#xff1a; import module_name其中&#xff0c;m…...

ChatGPT这么火,我们能怎么办?

今天打开百度&#xff0c;看到这样一条热搜高居榜二&#xff1a;B站UP主发起停更潮&#xff0c;然后点进去了解一看&#xff0c;大体是因为最近AI创作太火&#xff0c;对高质量原创形成了巨大冲击&#xff01;记得之前看过一位UP主的分享&#xff0c;说B站UP主的年收入大体约等…...

HashMap底层原理

文章目录1. 基本概念2. HashMap 的底层数据结构3. HashMap 的 put 方法流程4. 怎么计算节点存储的下标5. Hash 冲突1&#xff09;概念2&#xff09;解决 hash 冲突的办法开放地址法再哈希法链地址法建立公共溢出区6. HashMap 的扩容机制1&#xff09;扩容时涉及到的几个属性2&a…...

卡顿优化小结

卡顿的本质 卡顿的本质是因为一次垂直同步信号来的时候&#xff0c;当前帧要显示的图像数据还没准备好&#xff0c;只能等待16ms下一次垂直同步信号来时才能更新画面&#xff0c;在这段时间里显示器只能一直停留在上一帧的画面&#xff0c;如果跳过的帧数过多&#xff0c;就会…...

springboot前端ajax 04 关于后台传的时间和状态在前端的转换

修改状态及时间格式 在jsp中&#xff0c;时间显式&#xff1a; 只需要把json的时间部分改为用Date对象来显示就好了。 <td>new Date(jsonObj[i].startTime).toLocaleString()</td> <td>new Date(jsonObj[i].endTime).toLocaleString()</td> 状态对象…...

解决Windows微信和 PowerToys 的键盘管理器冲突

Windows开机之后PowerToys能正常使用, 但是打开微信之后设置好的快捷键映射就全部失效了 打开微信 -> 左下角三条杠 -> 设置 -> 快捷键 首先我把微信的快捷键全部清空了,发现还是没用 然后发现了设置里默认勾选了检测快捷键,我在想程序肯定是一直在后台检测,而powerTo…...

组会时间的工作

1. 党支部活动 看看组织生活记录本写完了没有 2. 论文翻译...

linux udp bind 返回值-1分析

在linux socket通信中,我们通常用到open/bind/read/write等内部函数,那么当这些函数返回值为-1的时候,我们怎么进一步定位呢! (1)怎么打印出返回值出错的原因呢!系统调用的错误都会存放在errno中 errno需要的头文件: #include<errno.h> strerror头文件,将错误信…...

Hexo搭建博客

文章目录开始安装使用配置主题配置gitee配置域名之前配置过hexo但是后来hexo文件夹莫名其妙崩了&#xff0c;我也懒得修理&#xff0c;就没管了&#xff0c;现在又想重拾回来。然后hexo可以搭建静态博客网站&#xff0c;放在github或者gitee都行&#xff0c;有免费的网页空间&a…...

Lesson11:http协议

前言 应用层:就是程序员基于socket接口之上编写的具体逻辑,做了很多工作,都是和文本处理有关的--- 协议分析与处理http协议,一定会具有大量的文体分析和协议处理如果用户想再url中包含url本身用来作为特殊字符的字符,url形式的时候,浏览器会自动给我们进行编码encode一般服务端…...

计算机信息安全有哪些SCI期刊推荐? - 易智编译EaseEditing

以下是计算机信息安全方向的SCI期刊推荐&#xff1a; IEEE Transactions on Information Forensics and Security 该期刊主要发表信息安全和数字取证方面的原创性研究&#xff0c;包括数据安全、网络安全、身份认证、加密、信息隐藏等领域的研究成果。该期刊的影响因子为8.134…...

CNVD-2023-12632 泛微e-cology9 sql注入 附poc

目录 漏洞描述影响版本漏洞复现漏洞修复 漏洞描述 泛微 E-Cology9 协同办公系统是一套基于 JSP 及 SQL Server 数据库的 OA 系统&#xff0c;包括知识文档管理、人力资源管理、客户关系管理、项目管理、财务管理、工作流程管理、数据中心等打造协同高效的企业管理环境&#…...

赛宁网安合作伙伴大会成功举办,重磅发布SCBaaS服务!

​​3月29日&#xff0c;“赛宁网安合作伙伴大会”在江苏南京隆重举办。大会现场汇集网络安全数字化领域的专业人才、技术专家&#xff0c;共同研讨数字安全发展趋势&#xff0c;分享智能安全解决方案和技术创新产品。 会上&#xff0c;赛宁网安产品专家针对数字化靶场、网络安…...

R语言 4.2.2安装包下载及安装教程

[软件名称]:R语言 4.2.2 [软件大小]: 75.6 MB [安装环境]: Win11/Win10/Win7 [软件安装包下载]: https://pan.quark.cn/s/b6f604930d04 R语言软件的GUI界面比较的简陋,只有一个命令行窗口,且每次创建图片都会跳出一个新的窗口,比较的繁琐,我们可以安装RStudio,来更方便的操作R(…...

快速玩转 CNStack 2.0 流量防护

作者&#xff1a;冠钰 云原生下的服务治理 在云原生技术的演进过程中&#xff0c;依托云原生技术能力&#xff0c;形成一个可以向下管理基础设施&#xff0c;向上管理业务应用的技术中台&#xff0c;越来越成为企业期望的云原生技术落地趋势。随着云原生技术中台 CNStack 发布…...

你还在用原生 poi 处理 excel?太麻烦了来瞧瞧这个

1、easypoi 前言 Excel 在日常工作中经常被用来存储用例信息&#xff0c;是一种非常便捷的数据存储工具有着众多的优点&#xff0c;我们就不一一介绍了。 今天来讲讲 Java 操作 Excel&#xff0c;总所周知 Java 是世界上最好的语言&#xff08;不容反驳&#xff09;&#xff…...

No.027<软考>《(高项)备考大全》【第11章】项目风险管理

【第11章】项目风险管理1 章节相关1.1 考试相关1.2 ITO口诀2 章节概述2.1 风险的含义2.2 风险定义的三个必要条件2.3 项目风险2.4 风险的随机性和相对性2.5 风险的分类2.6 风险成本2.7.1 风险损失有形成本2.7.2 风险损失无形成本2.8 项目风险管理过程3 规划风险管理4 识别风险4…...

mit6.824 lab2c-数据持久化

目录2c简介2b、2a问题测试时间2c简介 简单的说&#xff0c;raft需要将currentTerm、voteFor、entries(当前的所有日志)保存到硬盘进行持久化存储。 保存的方法&#xff1a;在变量改变时&#xff0c;利用persist()中的gob将变量序列化&#xff0c;存储在persister结构体中。&a…...

leaflet使用L.geoJSON加载文件,参数filter的使用方法(127)

第127个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载geojson文件,这里介绍filter的使用方法。filter将用于决定是否包含某个功能的函数。 默认是包括所有特征。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方…...

23年5月高项学习笔记7—— 质量管理

质量通常指产品质量&#xff0c;也包括工作质量&#xff08;即过程&#xff09;&#xff0c;产品质量是指产品的使用价值&#xff0c;工作质量是产品质量的保证&#xff0c;反映了产品质量直接相关的工作的对产品质量的保证程度。 公差&#xff1a;结果的可接受范围 项目合同…...