一元咖啡
码龄5年
  • 12,118
    被访问
  • 33
    原创
  • 72,350
    排名
  • 2
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2017-01-09
博客简介:

m0_37298252的博客

查看详细资料
  • 3
    领奖
    总分 204 当月 5
个人成就
  • 获得1次点赞
  • 内容获得2次评论
  • 获得10次收藏
创作历程
  • 11篇
    2022年
  • 16篇
    2021年
  • 6篇
    2020年
成就勋章
TA的专栏
  • springboot源码
    18篇
  • java
    21篇
  • spring源码
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

SpringBoot源码解析(十八)自动配置

前几篇文章聊完了prepareContext方法,本文继续SpringApplication#run方法的下一行:refreshContext这是Spring容器启动过程最重要的一个步骤,所有的扫描、解析、注入等等都在这里面完成的,当然本文依然是把焦点聚集在SpringBoot上,它的自动配置,也是在容器refresh的过程中执行的作为SpringBoot项目,启动类会加一个注解@SpringBootApplication,我们从这个注解开始入手,看它都做了哪些初始化,怎么整合到容器的启动流程并完成自
原创
发布博客 2022.04.04 ·
211 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(十七)ApplicationPreparedEvent

本文分析SpringBoot启动过程中的ApplicationPreparedEvent事件,它跟上文的事件ApplicationContextInitializedEvent一样,都是在prepareContext方法中发布的,同样算是对该方法的补充,正常情况下,接收到该事件的监听器一共有四个
原创
发布博客 2022.03.18 ·
438 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(十六)ApplicationContextInitializedEvent

这篇也是对prepareContext方法的补充,在执行完内置的ApplicationContextInitializer后,该方法发布了一个事件ApplicationContextInitializedEvent,在默认情况下,接收到事件的监听器有两个
原创
发布博客 2022.03.09 ·
100 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(十五)内置ApplicationContextInitializer

本篇文章是对上篇prepareContext的补充,在该方法的执行过程中,遍历了最初从META-INF/spring.factories文件中加载到的ApplicationContextInitializer,依次调用了其initialize方法回顾第一篇文章,SpringApplication初始化的时候,一共加载到了6个内置的ApplicationContextInitializer,本篇文章就逐一分析每个内置的初始化器做了哪些事情```javaorg.springframework.boot.
原创
发布博客 2022.03.02 ·
175 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(十四)prepareContext

本文继续SpringApplication的run方法往下分析,看prepareContext这行代码先看下几个入参,context是刚新建的容器,environment是已经完成了配置文件装在等一系列加工的环境对象,listeners中有一个事件发布器,内部含有springboot内置的监听器列表,applicationArguements是对命令行参数的一个封装,printerBanner是上面打印过的启动banner进入方法实现 private void prepareContext(C
原创
发布博客 2022.02.20 ·
104 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(十三)SpringBootExceptionReporter

容器创建完成后,继续本文介绍SpringBootExceptionReporter,它是SpringBoot项目启动过程的异常的分析器public ConfigurableApplicationContext run(String... args) { ...... ...... try { ...... ...... exceptionReporters = this.getSpringFactoriesInstances(SpringBootExceptionReporter.cl
原创
发布博客 2022.02.14 ·
151 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(十二)创建容器

Spring容器创建的过程,本文并不准备详细介绍,因为本系博文的主题是分析SpringBoot源码,重点放在SpringBoot基于Spring所做的扩展这个系列最初的目标,是把SpringBoot的源码一行一行地掰扯清楚,我也尽力在按这个标准来写,但要说把Spring源码也逐行分析清楚,我还不敢夸下这个海口,而且就我目前掌握的皮毛,感觉没有个几十篇文章也下不来的…所以接下来进入容器相关的流程后,对Spring源码还不太熟悉的朋友,可以先找资料研究下Spring的源码,包括后续进入容器的refresh过
原创
发布博客 2022.02.10 ·
214 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(十一)自定义banner

上篇文章结束了prepareEnvironment方法的分析,本篇继续SpringApplication的run方法往下走,看一个比较简单的点——banner打印所谓banner就是SpringBoot应用启动的时候打印在控制台的一个logo涉及到的代码就是下面这行printBanner在这之前,先简单说下上面的这行configureIgnoreBeanInfo private void configureIgnoreBeanInfo(ConfigurableEnvironment env
原创
发布博客 2022.02.06 ·
66 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(十)prepareEnvironment收尾

最近很多篇都是围绕prepareEnvironment方法在分析,上篇补充了ApplicationEnvironmentPreparedEvent事件的处理,相当于下面的listeners.environmentPrepared方法就结束掉了,本文就把这个方法中剩下的几行代码收下尾 private ConfigurableEnvironment prepareEnvironment(SpringApplicationRunListeners listeners, ApplicationArgumen
原创
发布博客 2022.01.28 ·
430 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(九)ApplicationEnvironmentPreparedEvent

最近两篇文章主要分析了ConfigFileApplicationListener对事件ApplicationEnvironmentPreparedEvent的处理,包括EnvironmentPostProcessor扩展点和系统配置文件的加载,而之前也提到过,实际上有很多监听者都会监听该事件的发布,本文对其它几个监听者的相关处理做个大致的介绍首先看下收到回掉的监听者列表ConfigFileApplicationListener以及介绍地很详细了,接下来对剩下的监听器做逐一分析AnsiOutputAp
原创
发布博客 2022.01.07 ·
298 阅读 ·
0 点赞 ·
0 评论

github禁用密码 导致idea推送代码443 timeout

记得去年某个晴朗的周末,在家里写着代码,喝着小酒,唱着歌,突然就被github给443了!不过当时并没有在意,因为网络原因,github连不上的现象时有发生,加上个人项目不着急推送,便暂时作罢期间时不时想起来就去看下,依然从未推送成功直到今天,突然想起,跟github失联已有数月之久!!显然哪里出了点问题,网上一顿搜索,从登陆http://github.com.ipaddress.com/#ipinfo获取ip地址配置到hosts文件,到idea里修改github连接超时时间,全都无效,十脸懵逼之
原创
发布博客 2022.01.05 ·
181 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(八)加载配置文件

上篇文章介绍了EnvironmentPostProcessor接口,在ConfigFileApplicationListener的接口实现中调用了addPropertySources,这个方法第一行添加了一个提供随机数的RandomValuePropertySource,第二行涉及到配置文件的加载,还没有进行说明,本文就继续分析这一加载流程 protected void addPropertySources(ConfigurableEnvironment environment, ResourceL
原创
发布博客 2021.12.31 ·
215 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(七)EnvironmentPostProcessor

本文将重点介绍SpringBoot提供给我们的另一个扩展点EnvironmentPostProcessor,它允许我们到任意的指定目录、以任意的方式加载一组配置,并赋予任意的优先级上文对prepareEnvironment方法的configureEnvironment做了一个收尾,本文继续看第三行代码listeners.environmentPrepared private ConfigurableEnvironment prepareEnvironment(SpringApplication.
原创
发布博客 2021.12.30 ·
112 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(六)ActiveProfiles初始化

Environment中有个属性ActiveProfiles,是将来要激活的配置本文主要对上篇文章剩下的一个点做个收尾上篇文章讲了配置的优先级,主要涉及到getOrCreateEnvironment和configureEnvironment两个方法其中configureEnvironment方法还剩最后一行configureProfiles没有提到 protected void configureEnvironment(ConfigurableEnvironment environment,
原创
发布博客 2021.12.28 ·
343 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(五)Environment配置优先级

上篇文章分析了PropertySource,描述它是一组属性的集合,算是对接下来Environment环节的铺垫,它可以看做项目的运行时环境,是系统运行的基础,最此之前,我们先来聊一下系统配置的优先级回想一下之前的面试,有没有遇到过这样的问题:在一个springboot项目中,命令行参数、系统环境变量、配置文件,它们的优先级是怎么样的?这个问题也将在本文中,从源码的角度给出答案本文的主角,即SpringApplication的run方法中,这行prepareEnvironment这个方法的入参是Sp
原创
发布博客 2021.12.24 ·
222 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(四)PropertySource

上篇文章分析了对ApplicationStartingEvent事件的处理,接下来回到SpringApplication.run()方法的流程本文主要着眼于基础环境的准备,涉及到如下两行代码首先第一行,new了一个DefaultApplicationArguments,其作用是把项目的启动参数保存起来ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);public class Defau
原创
发布博客 2021.12.22 ·
75 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(三)ApplicationStartingEvent

上篇文章分析了SpringBoot事件发布机制的大致原理,并且提到了SpringBoot启动过程中的第一个事件ApplicationStartingEvent,以及监听了该事件的四个监听器:DelegatingApplicationListenerLoggingApplicationListenerLiquibaseServiceLocatorApplicationListenerBackgroundPreinitializer首先还是先简单说下为什么这四个监听器能监听到Application
原创
发布博客 2021.12.21 ·
292 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(二)事件发布机制

上篇文章从springboot应用的启动开始说起,分析完了SpringApplication对象的初始化流程 public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { return (new SpringApplication(primarySources)).run(args); }这篇文章开始分析后面的run方法 publ
原创
发布博客 2021.12.17 ·
264 阅读 ·
0 点赞 ·
0 评论

SpringBoot源码解析(一)SpringApplication初始化

通常来说,一个基本的SpringBoot应用的启动类长这个样子:@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}我们从启动类开始,分析SpringBoot的源码流程,进入run方法 public static Configurab
原创
发布博客 2021.12.17 ·
290 阅读 ·
0 点赞 ·
0 评论

skywalking环境搭建 踩坑记录

环境搭建到官网下载skywalking压缩包http://skywalking.apache.org/downloads/由于我测试服务器上的ES版本是6.X,最新版本建议使用ES7了,这里选了一个稍旧的版本下载到压缩包后上传到服务器,解压后的目录agent就是增强我们应用的探针,后续需要拷贝到我们应用所在服务器bin目录下有一些启动脚本conf下是一些配置,包括告警配置、skywalking数据存储的配置等这里先修改conf下的application.yml,修改数据存储方式为es
原创
发布博客 2021.12.14 ·
1576 阅读 ·
0 点赞 ·
0 评论
加载更多