spring boot
文章平均质量分 68
一个努力的码农
这个作者很懒,什么都没留下…
展开
-
spring boot 源码解析10-SpringApplication#run第10-13步
这篇我们开始解析SpringApplication#run第10步-13步.本文分两步来说明:1. SpringApplication#run的第10-12步--> 代表着spring boot 的正常启动处理2. SpringApplication#run的第13步-->Spring boot run 方法的异常处理.全网独家,为你揭秘原创 2017-12-27 18:39:49 · 14392 阅读 · 1 评论 -
spring boot 源码解析56-actuator请求处理流程(以EnvironmentEndpoint为例)
前言前面2篇文章介绍了EndpointHandlerMapping.本文就来看一下访问MvcEndpoint的处理流程.本文以访问/env 为例进行讲解解析因为我们是get请求,因此为调用FrameworkServlet#doGet来进行处理,代码如下:protected final void doGet(HttpServletRequest request, HttpServletRespons原创 2018-02-01 18:30:04 · 14631 阅读 · 1 评论 -
spring boot 源码解析55-spring boot actuator HandlerMapping全网独家揭秘
全网独家揭秘--> 揭开EndpointHandlerMapping的面纱,深度好文,等你来读原创 2018-02-01 17:28:59 · 15578 阅读 · 0 评论 -
spring boot 源码解析40-CounterService,GaugeService默认自动装配解析
前言本文我们来分析CounterService,GaugeService的自动装配.关于其装配的实现是区分jdk版本的.其自动装配是在MetricRepositoryAutoConfiguration中,该类的说明如下:创建面向用户的GaugeService和CounterService的实例,同时创建repositories来存储数据.Java 7 使用的是InMemoryMetricReposi原创 2018-01-25 15:08:02 · 15070 阅读 · 0 评论 -
spring boot 源码解析19-@Conditional注解详解
spring boot @Conditional 源码解析,只看这篇就够了原创 2018-01-09 03:19:18 · 19086 阅读 · 1 评论 -
spring boot 源码解析39-DropwizardMetricServices详解
深度好文,为你解析spring boot中DropwizardMetricServices的实现,其中涉及如下内容:1. MetricRegistry的介绍2. DropwizardMetricServices源码解析3. DropwizardMetricServices自动装配解析4. MetricsDropwizardAutoConfiguration与MetricRepositoryAutoConfio原创 2018-01-25 13:06:49 · 12562 阅读 · 0 评论 -
spring boot 源码解析54-AbstractHandlerMethodMapping
前言本文我们先来解析一下AbstractHandlerMethodMapping,以对下篇文章EndpointHandlerMapping的解析打下基础.其继承结构如下:解析HandlerMappingHandlerMapping的顶层接口,只声明了1个方法–>getHandler–>调用getHandler实际上返回的是一个HandlerExecutionChain,这是典型的command的模式原创 2018-02-01 13:01:31 · 15085 阅读 · 0 评论 -
spring boot 源码解析38-GaugeService详解
前言本文来分析GaugeService的实现,其类图如下:解析GaugeServiceGaugeService–> 1个可以用来提交1个被命名的duble值为了存储和分析的服务.任意的统计和分析需要留给其他人去做,但是最终还是需要被该接口的实现所控制.举例说明:这个值可能是通过1个定时任务提交的,并且保存在后端的直方图中以进行比较。或者 可以是一个传感器值的简单测量(比如温度读数)以原始形式传递给监原创 2018-01-25 10:38:30 · 12740 阅读 · 0 评论 -
spring boot 源码解析53-AbstractNamedMvcEndpoint
前言本文来介绍AbstractNamedMvcEndpoint的一系列的子类:AuditEventsMvcEndpointHeapdumpMvcEndpointLogFileMvcEndpoint其他的实现:DocsMvcEndpointHalJsonMvcEndpointJolokiaMvcEndpoint我们后续的文章进行分析解析AuditEventsMvcEndpointAud原创 2018-02-01 01:26:42 · 14855 阅读 · 0 评论 -
spring boot 源码解析37-CounterService详解
前言从本文开始,我们开始分析org.springframework.boot.actuate.metrics包中的实现.这里面的代码比较多,因此我们采用一步一步的方式来进行分析.本文先分析CounterService相关的类(DropwizardMetricServices这个实现我们后续分析) 类图如下: ps:关于CounterService的自动装配,我们在解析完GaugeService之原创 2018-01-24 18:30:36 · 16809 阅读 · 0 评论 -
spring boot 源码解析52-actuate中MVCEndPoint解析
前言之前的几篇文章分析了spring boot 中有关endpoint的实现,细心的朋友可以发现,在org.springframework.boot.actuate.endpoint.mvc 包下也有一系列的xxxEndpoint,这又是为什么呢?原因是: 我们很多情况下,都是访问接口的方式获取应用的监控,之前的分析是其实现的底层,要想实现通过接口访问,还需要对其进行包装一番,org.springf原创 2018-01-31 18:48:29 · 16370 阅读 · 0 评论 -
spring boot 源码解析51-MetricExporters详解
全网独家揭秘-MetricExporters原创 2018-01-31 17:53:55 · 14505 阅读 · 0 评论 -
spring boot 源码解析18-WebMvcAutoConfiguration自动化配置揭秘
前言上篇文章,我们分析了spring boot 中其他有关mvc的自动化配置类,只剩下WebMvcAutoConfiguration没有解析,这篇文章对其进行收尾解析WebMvcAutoConfiguration 有如下注解:@Configuration@ConditionalOnWebApplication@ConditionalOnClass({ Servlet.class, Dispat原创 2018-01-07 23:17:28 · 32724 阅读 · 5 评论 -
spring boot 源码解析20-spring boot aop自动化配置
前言spring 中aop是一个核心概念,spring boot 是如何实现自动化配置的?现在我们就来分析一下解析spring boot 中自动化配置是读取/META-INF/spring.factories 中读取org.springframework.boot.autoconfigure.EnableAutoConfiguration配置的值,其中有关aop的只有一个,即org.springfr原创 2018-01-09 11:24:56 · 14214 阅读 · 1 评论 -
spring boot 源码解析41-CounterWriter,GaugeWriter解析
前言本文我们来分析一下CounterWriter,GaugeWriter接口的实现.前面的几篇文章,我们介绍了spring boot中的CounterService,GaugeService.数据有了,总得有输出的地方.那么本文就为你介绍一番.关于这部分的类图如下:这里面有些实现是不会进行详解的,有很多实现都是依赖第三方实现的.解析CounterWriterCounterWriter–> 计数器的简原创 2018-01-25 19:00:01 · 13661 阅读 · 0 评论 -
spring boot 源码解析57-actuator组件:info背后的密码(全网独家)
spring boot InfoEndpoint 的揭秘,从以下3个方面来说明:1. 源码解析2. 自动装配讲解3. 实战深度好文,等你来读原创 2018-02-02 02:17:29 · 17289 阅读 · 1 评论 -
spring boot 源码解析6-SpringApplication#run第6步
前言之前我们分析了SpringApplication#run方法的前5步.接下来我们分析第6步.创建ApplicationContext.前5步如下:初始化StopWatch,调用其start方法开始计时.设置系统属性java.awt.headless,这里设置为true,表示运行在服务器端,在没有显示器和鼠标键盘的模式下工作,模拟输入输出设备功能调用SpringApplicationRunL原创 2017-12-27 18:31:47 · 14010 阅读 · 1 评论 -
spring boot 源码解析43-JmxMetricWriter详解
前言本文我们来介绍JmxMetricWriter, JmxMetricWriter是依赖于spring jmx 来实现的. 因此本文的开头先介绍一下spring boot 与jmx的集成,然后分析JmxMetricWriter源码.spring boot jmx首先确保在pom文件中加入了如下依赖:<dependency> <groupId>org.springframework.boot原创 2018-01-29 23:32:11 · 14053 阅读 · 0 评论 -
spring boot 源码解析58-总结
经过慢慢的长路,关于spring boot 源码解析,到了该说再见的时候了,在本系列的揭秘中,有很多可以说是全网独家揭秘的,这个世界其实很奇怪,人们都很喜欢吃快餐,关于spring boot 如何使用的文章,浏览量很高,而关于源码揭秘的,浏览量很低…本人已与龙果学院合作,出一套spring boot 源码解析的课程,还有很多的内幕会在课程中讲述. 链接如下:Spring Boot源码解析后续的规划是原创 2018-02-05 12:20:54 · 16982 阅读 · 3 评论 -
spring boot 源码解析4-SpringApplication#run第4步
前言之前我们分析了SpringApplication#run方法的前3步.在这里我们分析第4步–>创建一个DefaultApplicationArguments对象,调用prepareEnvironment方法. StandardServletEnvironment-type-tree.png分析创建DefaultApplicationArguments.将启动时的参数传入到其构造器中.其构造器原创 2017-12-27 18:00:56 · 16753 阅读 · 2 评论 -
spring boot 源码解析46-MetricReader
前言本文来介绍MetricReader的实现,其类图如下:其中如下实现在之前的文章中有介绍,本文不在对其进行说明:BufferMetricReader–> 在 spring boot 源码解析44-PrefixMetricReader,PrefixMetricWriter,MultiMetricRepository 中有说明MetricRepository,InMemoryMetricRepos原创 2018-01-29 10:57:29 · 14097 阅读 · 0 评论 -
spring boot 源码解析7-SpringApplication#run第7步
前言SpringApplication#run第7步 只是实例化了一个FailureAnalyzers.主要是用来当出现异常时做一些分析处理.接下来我们就来分析一下分析实例化FailureAnalyzers时将之前实例化的AnnotationConfigEmbeddedWebApplicationContext 传递给了构造器.代码如下:analyzers = new FailureAnalyze原创 2017-12-27 18:32:40 · 15153 阅读 · 2 评论 -
spring boot 源码解析28-Log4J2LoggingSystem
前言spring boot 中关于Log的实现我们已经分析了JavaLoggingSystem,本文就来看看Log4J2LoggingSystem,在分析之前,我们需要先分析一下Slf4JLoggingSystem–> Log4J2LoggingSystem,LogbackLoggingSystem 的父类.解析Slf4JLoggingSystem字段,构造器如下:private static f原创 2018-01-19 18:04:15 · 13076 阅读 · 0 评论 -
spring boot 源码解析22-spring boot jdbc自动化配置
spring boot jdbc 自动化配置揭秘,深度好文,为你解惑原创 2018-01-10 18:55:56 · 14906 阅读 · 0 评论 -
spring boot 源码解析27-JavaLoggingSystem及LoggingSystem生命周期详解
前言现在我们来说说spring boot 中对于log相关的源码,因为我们现在需要对LoggersEndpoint进行分析,可是LoggersEndpoint中使用到了log相关的类,因此我们需要先对是如何实现Log的进行分析,之后再来看看LoggersEndpoint的实现spring boot 中有关log的代码在org.springframework.boot.logging包下,如图:其中l原创 2018-01-19 10:39:11 · 14282 阅读 · 0 评论 -
spring boot 源码解析21-spring boot transaction自动化配置
前言spring boot 的自动化配置其实就是在spring 的基础上做的封装,在我们之前对mvc,aop的自动化配置中可以发现–> 只是在spring 的基础上添加了一些特性,可以认为只是一个spring的应用.那么,关于transaction的配置也同样.解析和aop自动配置一样,在/META-INF/spring.factories中配置有关transaction的有2个:org.spri原创 2018-01-10 11:41:30 · 25038 阅读 · 1 评论 -
spring boot 源码解析44-PrefixMetricReader,PrefixMetricWriter,MultiMetricRepository
前言本文我们来分析PrefixMetricReader,PrefixMetricWriter,MultiMetricRepository的实现.类图如下:PrefixMetricReaderPrefixMetricReader–>对metrics进行分组–> 相同前缀的为1组.代码如下:public interface PrefixMetricReader { // 获得Metric的名字是给原创 2018-01-26 01:14:39 · 13585 阅读 · 0 评论 -
spring boot 源码解析45-RichGaugeReader,RichGaugeRepository
前言本文我们介绍的是RichGaugeReader,RichGaugeRepository相关的实现.其类图如下:解析RichGaugeRichGauge–>存储最大值,最小值,平均值的对象.平均值的计算取决于权重(alpha)的设置.如果没有设置,其平均值就是1个算术平均数.如果该值给定了,就会按照NIST的文档计算指数平均数指标 指数平均数指标=EMA(today)=α * Price(to原创 2018-01-26 00:04:53 · 13565 阅读 · 0 评论 -
spring boot 源码解析26-Liquibase使用及LiquibaseEndpoint解析
前言Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。那么在spring boot 中如何集成Liquibase,如何实现自动装配,如何通过actuator的方式对其进行监控,本文从以下3点来进行讲解:spring boot与Liquibase 的集成spring boot中Liquibase的原创 2018-01-16 16:40:33 · 15289 阅读 · 0 评论 -
spring boot 源码解析36-ConditionalOnEnabledEndpoint
前言本文我们来解析OnEnabledEndpointCondition的实现,这个还是很简单的.目的是为了做下缓冲,后面的内容比较复杂.好了,开始吧.解析@ConditionalOnEnabledEndpoint代码如下:@Retention(RetentionPolicy.RUNTIME)@Target({ ElementType.METHOD, ElementType.TYPE })@Con原创 2018-01-24 14:37:44 · 14809 阅读 · 0 评论 -
spring boot 源码解析50-Exporter详解
前言本文我们来分析一下Exporter的相关实现,类图如下:解析ExporterExporter–>metric 暴露的通用接口.当你横向扩展度量的范围时,你可能会需要在本地缓冲测量数据然后周期性的暴露出去(比如:聚合集群的数据),因此,这是这些操作的标记结构.触发export操作的可能是周期性或者是事件驱动–>这些都处于Exporter的职责范围之外.比如,你可以创建Exporter的实例,并且使原创 2018-01-31 15:02:24 · 14381 阅读 · 0 评论 -
spring boot 源码解析29-LogbackLoggingSystem
前言现在我们来分析一下LogbackLoggingSystem,spring boot 中默认生效的,该类也是继承自Slf4JLoggingSystem.解析LogbackLoggingSystem字段,构造器如下:// 初始化中如果在环境变量配置有logback.configurationFile,则打印警告日志,提示其使用logging.config进行替代private static fi原创 2018-01-22 16:53:49 · 15769 阅读 · 1 评论 -
spring boot 源码解析12-servlet容器的建立
前言spring boot 一般都会加入如下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>加入后,就会启动一个嵌入式容器,其默认启动的是tomcat.那么他是如何启动的,我们接下来就分析下原创 2017-12-28 00:05:29 · 14538 阅读 · 1 评论 -
spring boot 源码解析11-ConfigurationClassPostProcessor类加载解析
前言ConfigurationClassPostProcessor实现了BeanDefinitionRegistryPostProcessor接口,该类会在AbstractApplicationContext#refresh 中的第5步时进行调用.由于其postProcessBeanDefinitionRegistry 实现过程非常复杂,因此单拿一篇进行分析解析ConfigurationClassP原创 2017-12-28 00:04:10 · 21450 阅读 · 8 评论 -
spring boot 源码解析9-SpringApplication#run第9步
前言我们来到了SpringApplication#run方法的第9步,这步做的工作比较多.我们慢慢来.分析第9步执行的是如下代码:private void refreshContext(ConfigurableApplicationContext context) { refresh(context); // 注册一个关闭容器时的钩子函数 if (th原创 2017-12-27 18:37:04 · 14258 阅读 · 5 评论 -
spring boot 源码解析8-SpringApplication#run第8步
前言这篇文章我们分析SpringApplication#run第8步.执行prepareContext方法.该方法的内容比较多.我们慢慢来.分析SpringApplication#run 第8步执行如下代码:private void prepareContext(ConfigurableApplicationContext context, ConfigurableEnvironm原创 2017-12-27 18:36:19 · 14247 阅读 · 2 评论 -
spring boot 源码解析5-SpringApplication#run第5步
前言之前的文章我们分析了SpringApplication#run方法执行的前4步,这里我们分析第5步,打印banner.解析SpringApplication#run方法的第5步执行如下代码:private Banner printBanner(ConfigurableEnvironment environment) { // 1. 首先判断banner的输出级别。如果禁用了,则原创 2017-12-27 18:24:59 · 14523 阅读 · 1 评论 -
spring boot 源码解析3-SpringApplication#run
前言在spring boot 源码解析2-SpringApplication初始化 中我们分析了SpringApplication的初始化.接下来我们继续分析SpringApplication的run方法.解析SpringApplication#run方法的代码如下:public ConfigurableApplicationContext run(String... args) { //原创 2017-12-27 17:47:13 · 15493 阅读 · 1 评论 -
spring boot 源码解析2-SpringApplication初始化
前言我们生成一个spring boot 项目时,会自带一个启动类. 代码如下:@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args);原创 2017-12-27 17:42:27 · 16266 阅读 · 5 评论 -
spring boot 1--环境搭建
spring boot 的源码地址如下:https://github.com/spring-projects/spring-boot通过 git clone 的方式下载下来通过 mvn clean install -DskipTests 的方式进行构建.经过漫长的等待,最终构建完成后,导入到sts中即可.参考链接:http://m.blog.csdn.net/jamet/article/deta原创 2017-12-27 17:38:05 · 13217 阅读 · 3 评论