SpringBoot源码解析

news2024/11/27 10:47:46

1.Spring Boot介绍,源码阅读环境搭建,插件安装

2.spring boot 源码解析2-SpringApplication初始化

3.spring boot 源码解析3-SpringApplication#run

4.spring boot 源码解析4-SpringApplication#run第4步

5.spring boot 源码解析5-SpringApplication#run第5步

6.spring boot 源码解析6-SpringApplication#run第6步

7.spring boot 源码解析7-SpringApplication#run第7步

8.spring boot 源码解析8-SpringApplication#run第8步

2017-12-25 10:25:22.276  INFO 50826 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication on localhost with PID 50826 (/Users/hejiarui/Documents/spring-boot-source/demo/target/classes started by hejiarui in /Users/hejiarui/Documents/spring-boot-source/demo)2017-12-25 10:29:02.626 DEBUG 50852 --- [           main] com.example.demo.DemoApplication         : Running with Spring Boot, Spring v4.3.13.RELEASE   

9.spring boot 源码解析9-SpringApplication#run第9步

/**/favicon.ico=ResourceHttpRequestHandler [locations=[ServletContext resource [/], class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/], class path resource []], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@6bbe50c9]], 

/webjars/**=ResourceHttpRequestHandler [locations=[class path resource [META-INF/resources/webjars/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@3c46dcbe]], 

/**=ResourceHttpRequestHandler [locations=[ServletContext resource [/], class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@68577ba8]] 

10.spring boot 源码解析10-SpringApplication#run第10-13步

11.spring boot 源码解析11-ConfigurationClassPostProcessor类加载解析

12.spring boot 源码解析12-servlet容器的建立

13.spring boot 源码解析13-@ConfigurationProperties是如何生效的

14.spring boot 源码解析14-默认错误页面处理流程, 自定义,及EnableAutoConfigurationImportSelector处理

15.spring boot 源码解析15-spring mvc零配置

16.spring boot 源码解析16-spring boot外置tomcat部署揭秘

17.spring boot 源码解析17-mvc自动化配置揭秘

18.spring boot 源码解析18-WebMvcAutoConfiguration自动化配置揭秘

19.spring boot 源码解析19-@Conditional注解详解

20.spring boot 源码解析20-spring boot aop自动化配置

21.spring boot 源码解析21-spring boot transaction自动化配置

22.spring boot 源码解析22-spring boot jdbc自动化配置

23.spring boot 源码解析23-actuate使用及EndPoint解析

24.spring boot 源码解析24-HealthEndpoint解析

25.spring boot 源码解析25-DataSourcePoolMetadata与DataSourcePoolMetadataProvider

26.spring boot 源码解析26-Liquibase使用及LiquibaseEndpoint解析

27.spring boot 源码解析27-JavaLoggingSystem及LoggingSystem生命周期详解

28.spring boot 源码解析28-Log4J2LoggingSystem

29.spring boot 源码解析29-LogbackLoggingSystem

30.spring boot 源码解析30-LoggersEndpoint

31.spring boot 源码解析31-AuthenticationAuditListener,AuthorizationAuditListener

32.spring boot 源码解析32-PublicMetrics详解

33.spring boot 源码解析33-spring boot集成spring cache(基于ConcurrentMapCache)

34.spring boot 源码解析34-spring boot集成spring cache(基于EHcache)

35.spring boot 源码解析35-CacheStatisticsProvider,CacheStatistics

36.spring boot 源码解析36-ConditionalOnEnabledEndpoint

37.spring boot 源码解析37-CounterService详解

38.spring boot 源码解析38-GaugeService详解

39.spring boot 源码解析39-DropwizardMetricServices详解

40.spring boot 源码解析40-CounterService,GaugeService默认自动装配解析

41.spring boot 源码解析41-CounterWriter,GaugeWriter解析

42.spring boot 源码解析42-MessageChannelMetricWriter详解

43.spring boot 源码解析43-JmxMetricWriter详解

44.spring boot 源码解析44-PrefixMetricReader,PrefixMetricWriter,MultiMetricRepository

45.spring boot 源码解析45-RichGaugeReader,RichGaugeRepository

46.spring boot 源码解析46-MetricReader

47.spring boot 源码解析47-Metric(RichGauge)ReaderPublicMetrics

48.spring boot 源码解析48-MetricsEndpoint

49.spring boot 源码解析49-MetricsEndpointMetricReader

50.spring boot 源码解析50-Exporter详解

51.spring boot 源码解析51-MetricExporters详解

Metric [name=gauge.response.test-counter, value=32.0, timestamp=Wed Jan 31 17:36:36 CST 2018]Metric [name=gauge.response.star-star.favicon.ico, value=14.0, timestamp=Wed Jan 31 17:36:36 CST 2018]
Metric [name=counter.status.200.star-star.favicon.ico, value=1, timestamp=Wed Jan 31 17:36:36 CST 2018]Metric [name=counter.test-counter.count, value=1, timestamp=Wed Jan 31 17:36:36 CST 2018]
Metric [name=counter.status.200.test-counter, value=1, timestamp=Wed Jan 31 17:36:36 CST 2018] 

52.spring boot 源码解析52-actuate中MVCEndPoint解析

53.spring boot 源码解析53-AbstractNamedMvcEndpoint

2018-02-01 01:07:26.635  INFO 3132 --- [main] com.example.demo.DemoApplication         : Starting DemoApplication on localhost with PID 3132 (/Users/hejiarui/Documents/spring-boot-source/demo/target/classes started by hejiarui in /Users/hejiarui/Documents/spring-boot-source/demo)
2018-02-01 01:07:26.638  INFO 3132 --- [main] com.example.demo.DemoApplication         : The following profiles are active: test
2018-02-01 01:07:26.894  INFO 3132 --- [main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@7d1cfb8b: startup date [Thu Feb 01 01:07:26 CST 2018]; root of context hierarchy
2018-02-01 01:07:27.619  INFO 3132 ---

54.spring boot 源码解析54-AbstractHandlerMethodMapping

55.spring boot 源码解析55-spring boot actuator HandlerMapping全网独家揭秘

2018-02-01 15:24:52.984  INFO 7106 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/metrics/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)
2018-02-01 15:24:52.984  INFO 7106 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/metrics || /metrics.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()

org.springframework.boot.actuate.autoconfigure.EndpointWebMvcManagementContextConfiguration,\
org.springframework.boot.actuate.autoconfigure.EndpointWebMvcHypermediaManagementContextConfiguration

56.spring boot 源码解析56-actuator请求处理流程(以EnvironmentEndpoint为例)

--> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(HttpServletRequest, HttpServletResponse, Object)
    -->     org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(HttpServletRequest, HttpServletResponse, HandlerMethod)
        -->     org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(HttpServletRequest, HttpServletResponse, HandlerMethod)
            -->     org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletWebRequest, ModelAndViewContainer, Object...)
                --> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(NativeWebRequest, ModelAndViewContainer, Object...)
                    --> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(Object...)
                        --> org.springframework.boot.actuate.endpoint.EnvironmentEndpoint.invoke() // 最终执行到 

57.spring boot 源码解析57-actuator组件:info背后的密码(全网独家)

spring.info.build.location=classpath:META-INF/build-info.properties # Location of the generated build-info.properties file.
spring.info.git.location=classpath:git.properties # Location of the generated git.properties file.

​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/714871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot医院挂号小程序

医院挂号系统 springboot医院挂号系统小程序 java医院挂号小程序 技术: 基于springbootvue小程序医院挂号系统的设计与实现 运行环境: JAVA版本:JDK1.8 IDE类型:IDEA、Eclipse都可运行 数据库类型:MySql(…

在线教育场景下客户端实践与优化——RTC服务在线教育

在线教育场景下对提供稳定、高质量的音视频服务提出了非常高的要求。而不断推陈出新的课堂形式以及新技术的应用,使得好未来自研音视频SDK面临更多的挑战。 LiveVideoStackCon 2022北京站邀请到好未来音视频开发高级专家郭晓明介绍好未来自研SDK在工程化上所做出的努…

【编译、链接、装载十五】系统调用与API——printf源码分析

【编译、链接、装载十五】系统调用与API——printf源码分析 一、系统调用介绍1、什么是系统调用2、Linux系统调用3、系统调用的弊端 二、系统调用原理1、中断 三、linux下系统调用实现1、 strace 查看可知,printf调用了系统函数write2、gdb调试查看——printf3、gdb…

实践|随机森林中缺失值的处理方法

动动发财的小手,点个赞吧! 除了在网上找到的一些过度清理的数据集之外,缺失值无处不在。事实上,数据集越复杂、越大,出现缺失值的可能性就越大。缺失值是统计研究的一个令人着迷的领域,但在实践中它们往往很…

并查集的讲解

什么是并查集? --是一个森林;(由多颗树构成的) 并查集原理 在一些应用问题中,需要 将 n 个不同的元素划分成一些不相交的集合 。 开始时,每个元素自成一个 单元素集合,然后按一定的规律将归于…

springboot开启热部署

第一步引入spring-boot-devtools依赖 <!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><!--默认false改依赖是否可以传递&…

【Servlet】如何使用 Servlet 编写第一个 helloword 程序

文章目录 前言一、创建 Maven 项目二、引入依赖三、创建目录四、编写代码五、打包项目六、部署程序七、运行程序总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习…

transforms数据增强

在AI领域的模型训练中通常会遇到模型过拟合问题&#xff0c;通常采取的办法就是数据增强处理&#xff0c;例如在图像处理中&#xff0c;数据增强是指对原始图像进行旋转、缩放、剪切、翻转等操作&#xff0c;以扩大训练数据集的规模&#xff0c;提高模型泛化能力&#xff0c;降…

Gradio HTML组件详解

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

【23-07-03:HTTP协议的结构学习】

目录 HTTP 请求的结构HTTP 请求的整体架构请求方法&#xff08;Method&#xff09;请求路径&#xff08;URI&#xff09;GET 参数&#xff08;Parameters for GET)协议说明&#xff08;Protocol&#xff09;头部字段&#xff08;Headers&#xff09;请求体&#xff08;Body&…

论文与专利查找和下载

例如我想查找和下载视频理解(video understanding)相关论文 路线大纲如下&#xff1a; 一、最主要方式&#xff1a; 大纲&#xff0c;蓝色都是有超级链接的可以直接打开: 第一步 谷歌搜索(英文) 学校的知网(中文)第二步 下载论文(谷歌学术--英文 学校的知网--中文)下载不了…

CMA

文章目录 前言概念功能启用CMA 内存的创建方式一、使用 cmdline方式二、使用 dts CMA 内存分配和释放实例&#xff08;dts 方式&#xff09; 前言 在嵌入式设备中&#xff0c;很多外设&#xff08;如摄像机、硬件视频解码器等&#xff09;需要较大的内存缓冲区&#xff0c;kma…

clickhouse日志表占用大量磁盘空间

clickhouse日志表占用大量磁盘空间 sql&#xff1a; SELECT sum(rows) AS 总行数, formatReadableSize(sum(data_uncompressed_bytes)) AS 原始大小, formatReadableSize(sum(data_compressed_bytes)) AS 压缩大小, round((sum(data_compressed_bytes) / sum(data_uncompresse…

<DB2> 《IBM DB2 备份恢复实用文档》(第一部分)

[TOC](《IBM DB2 备份恢复实用文档》(第一部分)) 1 理论 1.1 关于备份恢复说明 a、DB2数据库备份和恢复的数据都是已经提交落地在磁盘的数据 。 b、DB2数据库备份和恢复使用的日志都是归档日志。 c、只有开启归档日志&#xff0c;才能进行在线全备、在线增备。否则只能进行离…

基于单片机智能手环心率老人防跌倒心率体温 步数里程

功能介绍 以STM32单片机作为主控系统&#xff1b; OLED液晶显示心率体温步数等信息&#xff1b;通过按键设置心率、体温上限设置&#xff1b;当心率或者体温超过按键设置上限蜂鸣器进行声光报警提醒&#xff1b;通过wifi模块esp8266把数据发送到手机端进行显整个电路以5v供电&a…

Three.js卡通材质实现简明教程

继 Harry Alisavakis 令人惊叹的汤着色器之后&#xff0c;我想使用 Three.js 重新创建类似的卡通着色效果。 我从 Roystan 的卡通着色器教程开始&#xff0c;它是为 Unity 编写的。 在这篇文章中&#xff0c;我将把 Roystan 教程中概述的原则翻译成 Three.js。 下面描述的着色器…

mysql索引之Hash

在存储引擎中Memory引擎是支持Hash索引的&#xff0c;Hash索引跟java中的HashMap很像&#xff0c;有很多槽&#xff0c;存的也是键值对&#xff0c;键值为索引列&#xff0c;值为这条数据的行指针&#xff0c;通过指针就可以找到数据。 但是Hash索引应用的并不多&#xff0c;原…

一篇文章解释清楚IOC和DI

背景 众所周知我们要学习Spring&#xff0c;必不可少的就是IOC和AOP&#xff0c;那就让我们了解一下什么是IOC&#xff0c;开启下面的学习吧。 过程 什么是IOC&#xff1f; Ioc—Inversion of Control&#xff0c;即“控制反转”&#xff0c;不是什么技术&#xff0c;而是一…

VSCode 2019 “对COM组件的调用返回了错误HRESULT E_FAIL” 的解决

问题&#xff1a; VSCode使用 “MFC应用”模板创建项目时&#xff0c;出现&#xff1a;文件夹打不开&#xff0c;并弹出 “对COM组件的调用返回了错误HRESULT E_FAIL” 错误 解决方案&#xff1a; 1. 以管理员身份打开Developer Command Prompt for VS 2019&#xff08;vs2…

敏捷开发发展和优缺点

目录 1 概述1.1 四种开发模式1.1.1 瀑布式开发1.1.2 螺旋模型1.1.3 迭代式开发1.1.4 敏捷开发 1.2 开发模式对比 2 敏捷开发2.1 敏捷宣言2.1.1 敏捷宣言解读2.1.2 敏捷宣言价值观 2.2 敏捷准则2.2.1 目的&#xff1a;是客户满意2.2.2 态度&#xff1a;欢迎需求变更2.2.3 关注&a…