spring boot 源码解析
文章平均质量分 68
spring boot 源码解析,由浅入深,看spring boot 源码解析,只要这个就够了
一个努力的码农
这个作者很懒,什么都没留下…
展开
-
spring boot 源码解析58-总结
经过慢慢的长路,关于spring boot 源码解析,到了该说再见的时候了,在本系列的揭秘中,有很多可以说是全网独家揭秘的,这个世界其实很奇怪,人们都很喜欢吃快餐,关于spring boot 如何使用的文章,浏览量很高,而关于源码揭秘的,浏览量很低…本人已与龙果学院合作,出一套spring boot 源码解析的课程,还有很多的内幕会在课程中讲述. 链接如下:Spring Boot源码解析后续的规划是原创 2018-02-05 12:20:54 · 16968 阅读 · 3 评论 -
spring boot 源码解析57-actuator组件:info背后的密码(全网独家)
spring boot InfoEndpoint 的揭秘,从以下3个方面来说明:1. 源码解析2. 自动装配讲解3. 实战深度好文,等你来读原创 2018-02-02 02:17:29 · 17263 阅读 · 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 · 14608 阅读 · 1 评论 -
spring boot 源码解析55-spring boot actuator HandlerMapping全网独家揭秘
全网独家揭秘--> 揭开EndpointHandlerMapping的面纱,深度好文,等你来读原创 2018-02-01 17:28:59 · 15561 阅读 · 0 评论 -
spring boot 源码解析54-AbstractHandlerMethodMapping
前言本文我们先来解析一下AbstractHandlerMethodMapping,以对下篇文章EndpointHandlerMapping的解析打下基础.其继承结构如下:解析HandlerMappingHandlerMapping的顶层接口,只声明了1个方法–>getHandler–>调用getHandler实际上返回的是一个HandlerExecutionChain,这是典型的command的模式原创 2018-02-01 13:01:31 · 15051 阅读 · 0 评论 -
spring boot 源码解析53-AbstractNamedMvcEndpoint
前言本文来介绍AbstractNamedMvcEndpoint的一系列的子类:AuditEventsMvcEndpointHeapdumpMvcEndpointLogFileMvcEndpoint其他的实现:DocsMvcEndpointHalJsonMvcEndpointJolokiaMvcEndpoint我们后续的文章进行分析解析AuditEventsMvcEndpointAud原创 2018-02-01 01:26:42 · 14840 阅读 · 0 评论 -
spring boot 源码解析51-MetricExporters详解
全网独家揭秘-MetricExporters原创 2018-01-31 17:53:55 · 14485 阅读 · 0 评论 -
spring boot 源码解析52-actuate中MVCEndPoint解析
前言之前的几篇文章分析了spring boot 中有关endpoint的实现,细心的朋友可以发现,在org.springframework.boot.actuate.endpoint.mvc 包下也有一系列的xxxEndpoint,这又是为什么呢?原因是: 我们很多情况下,都是访问接口的方式获取应用的监控,之前的分析是其实现的底层,要想实现通过接口访问,还需要对其进行包装一番,org.springf原创 2018-01-31 18:48:29 · 16340 阅读 · 0 评论 -
spring boot 源码解析50-Exporter详解
前言本文我们来分析一下Exporter的相关实现,类图如下:解析ExporterExporter–>metric 暴露的通用接口.当你横向扩展度量的范围时,你可能会需要在本地缓冲测量数据然后周期性的暴露出去(比如:聚合集群的数据),因此,这是这些操作的标记结构.触发export操作的可能是周期性或者是事件驱动–>这些都处于Exporter的职责范围之外.比如,你可以创建Exporter的实例,并且使原创 2018-01-31 15:02:24 · 14361 阅读 · 0 评论 -
spring boot 源码解析49-MetricsEndpointMetricReader
前言本文还是拾遗–> 对MetricsEndpointMetricReader进行讲解.解析MetricsEndpointMetricReader–>实现了MetricReader接口,通过拉取MetricsEndpoint的所有的值来实现MetricReader.由于没有timestamp的数据,因此没有必要检查其是否是最新的,而且其默认是当前时间 该类没有进行自动装配字段,构造器如下:pr原创 2018-01-31 11:13:57 · 13896 阅读 · 0 评论 -
spring boot 源码解析48-MetricsEndpoint
前言本文我们来解析MetricsEndpoint(之前没有讲述的)解析MetricsEndpoint继承自AbstractEndpoint.字段,构造器如下:// 获得PublicMetrics中所有类型的PublicMetrics,由构造器注入private final List<PublicMetrics> publicMetrics;public MetricsEndpoint(Publ原创 2018-01-31 10:42:10 · 14991 阅读 · 0 评论 -
spring boot 源码解析42-MessageChannelMetricWriter详解
全网独家奉献--MessageChannelMetricWriter详解原创 2018-01-30 23:32:45 · 13995 阅读 · 0 评论 -
spring boot 源码解析47-Metric(RichGauge)ReaderPublicMetrics
前言这里我们来讲解一下MetricReaderPublicMetrics,RichGaugeReaderPublicMetrics的实现,之前由于没有讲解完RichGaugeReader,MetricReader的实现,因此就没有讲解.由于现在我们基本上讲解完了前置要求(RichGaugeReader,MetricReader的实现),因此,这里就把之前漏掉没说明的进行讲解.解析MetricRead原创 2018-01-31 00:54:25 · 14060 阅读 · 0 评论 -
spring boot 源码解析46-MetricReader
前言本文来介绍MetricReader的实现,其类图如下:其中如下实现在之前的文章中有介绍,本文不在对其进行说明:BufferMetricReader–> 在 spring boot 源码解析44-PrefixMetricReader,PrefixMetricWriter,MultiMetricRepository 中有说明MetricRepository,InMemoryMetricRepos原创 2018-01-29 10:57:29 · 14085 阅读 · 0 评论 -
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 · 14032 阅读 · 0 评论 -
spring boot 源码解析45-RichGaugeReader,RichGaugeRepository
前言本文我们介绍的是RichGaugeReader,RichGaugeRepository相关的实现.其类图如下:解析RichGaugeRichGauge–>存储最大值,最小值,平均值的对象.平均值的计算取决于权重(alpha)的设置.如果没有设置,其平均值就是1个算术平均数.如果该值给定了,就会按照NIST的文档计算指数平均数指标 指数平均数指标=EMA(today)=α * Price(to原创 2018-01-26 00:04:53 · 13558 阅读 · 0 评论 -
spring boot 源码解析44-PrefixMetricReader,PrefixMetricWriter,MultiMetricRepository
前言本文我们来分析PrefixMetricReader,PrefixMetricWriter,MultiMetricRepository的实现.类图如下:PrefixMetricReaderPrefixMetricReader–>对metrics进行分组–> 相同前缀的为1组.代码如下:public interface PrefixMetricReader { // 获得Metric的名字是给原创 2018-01-26 01:14:39 · 13577 阅读 · 0 评论 -
spring boot 源码解析41-CounterWriter,GaugeWriter解析
前言本文我们来分析一下CounterWriter,GaugeWriter接口的实现.前面的几篇文章,我们介绍了spring boot中的CounterService,GaugeService.数据有了,总得有输出的地方.那么本文就为你介绍一番.关于这部分的类图如下:这里面有些实现是不会进行详解的,有很多实现都是依赖第三方实现的.解析CounterWriterCounterWriter–> 计数器的简原创 2018-01-25 19:00:01 · 13648 阅读 · 0 评论 -
spring boot 源码解析40-CounterService,GaugeService默认自动装配解析
前言本文我们来分析CounterService,GaugeService的自动装配.关于其装配的实现是区分jdk版本的.其自动装配是在MetricRepositoryAutoConfiguration中,该类的说明如下:创建面向用户的GaugeService和CounterService的实例,同时创建repositories来存储数据.Java 7 使用的是InMemoryMetricReposi原创 2018-01-25 15:08:02 · 15059 阅读 · 0 评论 -
spring boot 源码解析37-CounterService详解
前言从本文开始,我们开始分析org.springframework.boot.actuate.metrics包中的实现.这里面的代码比较多,因此我们采用一步一步的方式来进行分析.本文先分析CounterService相关的类(DropwizardMetricServices这个实现我们后续分析) 类图如下: ps:关于CounterService的自动装配,我们在解析完GaugeService之原创 2018-01-24 18:30:36 · 16778 阅读 · 0 评论 -
spring boot 源码解析38-GaugeService详解
前言本文来分析GaugeService的实现,其类图如下:解析GaugeServiceGaugeService–> 1个可以用来提交1个被命名的duble值为了存储和分析的服务.任意的统计和分析需要留给其他人去做,但是最终还是需要被该接口的实现所控制.举例说明:这个值可能是通过1个定时任务提交的,并且保存在后端的直方图中以进行比较。或者 可以是一个传感器值的简单测量(比如温度读数)以原始形式传递给监原创 2018-01-25 10:38:30 · 12729 阅读 · 0 评论 -
spring boot 源码解析39-DropwizardMetricServices详解
深度好文,为你解析spring boot中DropwizardMetricServices的实现,其中涉及如下内容:1. MetricRegistry的介绍2. DropwizardMetricServices源码解析3. DropwizardMetricServices自动装配解析4. MetricsDropwizardAutoConfiguration与MetricRepositoryAutoConfio原创 2018-01-25 13:06:49 · 12545 阅读 · 0 评论 -
spring boot 源码解析36-ConditionalOnEnabledEndpoint
前言本文我们来解析OnEnabledEndpointCondition的实现,这个还是很简单的.目的是为了做下缓冲,后面的内容比较复杂.好了,开始吧.解析@ConditionalOnEnabledEndpoint代码如下:@Retention(RetentionPolicy.RUNTIME)@Target({ ElementType.METHOD, ElementType.TYPE })@Con原创 2018-01-24 14:37:44 · 14782 阅读 · 0 评论 -
spring boot 源码解析35-CacheStatisticsProvider,CacheStatistics
前言讲过前面2篇文章的讲解,我们知道了spring boot 是如何集成spring cache的,那么我们接着来看一下org.springframework.boot.actuate.cache 中有关cache的实现.这部分的类图如下:我们本文关于CacheStatisticsProvider的实现只讲解EhCacheStatisticsProvider,ConcurrentMapCacheSt原创 2018-01-24 13:16:10 · 12074 阅读 · 0 评论 -
spring boot 源码解析33-spring boot集成spring cache(基于ConcurrentMapCache)
前言接下来的几篇我们来讲解一下spring boot 中如何集成spring cache. spring cache 中支持如下cache:ConcurrentMap CacheCaffeine CacheEhCacheGuavaCache(1.5版本废弃)Hazelcast CacheInfinispan CacheJCache Cache我们只讲解ConcurrentMapCac原创 2018-01-23 15:32:27 · 15567 阅读 · 1 评论 -
spring boot 源码解析34-spring boot集成spring cache(基于EHcache)
前言本文在上篇文章的基础上做出修改,使其使用Ehcache.Ehcache集成在pom文件中加入如下配置:<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId></dependency>在src/main/resources 目录下加入ehcache.xml.代码如下:<?x原创 2018-01-23 19:29:20 · 12811 阅读 · 0 评论 -
spring boot 源码解析31-AuthenticationAuditListener,AuthorizationAuditListener
前言这篇文章我们来分析一下org.springframework.boot.actuate.security,org.springframework.boot.actuate.audit中的代码,这2个包的类是对spring security 的事件进行处理的.类图如下:解析AuditEventAuditEvent–> 1个值对象–>代表了1个audit event: 在特定的时间,1个特定的用户或原创 2018-01-23 12:33:25 · 13306 阅读 · 0 评论 -
spring boot 源码解析32-PublicMetrics详解
前言接下来的几篇文章我们来分析一下spring-boot-actuator 中在org.springframework.boot.actuate.metrics中的代码,如图:这里的代码不仅多,而且还比较复杂(类与类之间的关联关系).我们的策略是一点一点的蚕食,本文就先来分析PublicMetrics的实现,关于这部分的类图如下:本文只分析PublicMetrics, SystemPublicMet原创 2018-01-22 23:43:44 · 14530 阅读 · 0 评论 -
spring boot 源码解析30-LoggersEndpoint
前言之前花了3篇文章来讲解spring boot中的LoggingSystem,其目的是为了讲解这边文章的主题–LoggersEndpoint.现在我们就来解析吧解析LoggersEndpoint 继承自AbstractEndpoint. 用来暴露日志的信息.字段,构造器如下:private final LoggingSystem loggingSystem;public LoggersEndpo原创 2018-01-22 17:32:07 · 12159 阅读 · 0 评论 -
spring boot 源码解析28-Log4J2LoggingSystem
前言spring boot 中关于Log的实现我们已经分析了JavaLoggingSystem,本文就来看看Log4J2LoggingSystem,在分析之前,我们需要先分析一下Slf4JLoggingSystem–> Log4J2LoggingSystem,LogbackLoggingSystem 的父类.解析Slf4JLoggingSystem字段,构造器如下:private static f原创 2018-01-19 18:04:15 · 13051 阅读 · 0 评论 -
spring boot 源码解析29-LogbackLoggingSystem
前言现在我们来分析一下LogbackLoggingSystem,spring boot 中默认生效的,该类也是继承自Slf4JLoggingSystem.解析LogbackLoggingSystem字段,构造器如下:// 初始化中如果在环境变量配置有logback.configurationFile,则打印警告日志,提示其使用logging.config进行替代private static fi原创 2018-01-22 16:53:49 · 15732 阅读 · 1 评论 -
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 · 14240 阅读 · 0 评论 -
spring boot 源码解析25-DataSourcePoolMetadata与DataSourcePoolMetadataProvider
前言我们在上篇文章 spring boot 源码解析24-HealthEndpoint解析中 在解析DataSourceHealthIndicator的时候发现其使用到了DataSourcePoolMetadataProviders.我们就在本文中分析一下吧,还是比较简单的解析spring boot 中 关于jdbc metadata的实现都在org.springframework.boot.aut原创 2018-01-15 17:55:51 · 15555 阅读 · 1 评论 -
spring boot 源码解析26-Liquibase使用及LiquibaseEndpoint解析
前言Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。那么在spring boot 中如何集成Liquibase,如何实现自动装配,如何通过actuator的方式对其进行监控,本文从以下3点来进行讲解:spring boot与Liquibase 的集成spring boot中Liquibase的原创 2018-01-16 16:40:33 · 15243 阅读 · 0 评论 -
spring boot 源码解析24-HealthEndpoint解析
spring boot HealthEndPoint 你真的了解吗? 其源码你看过吗?本文从HealthIndicator, HealthAggregator,HealthEndPoint 为你一一解读,全网独家原创 2018-01-15 15:26:38 · 18523 阅读 · 1 评论 -
spring boot 源码解析23-actuate使用及EndPoint解析
关于spring boot actuator 你真的了解吗?本文通过如下几点来进行解析:1. xxxEndpoint的作用2. xxxEndpoint的字段,构造器3. xxxEndpoint核心方法invoke 实现分析4. xxxEndpoint如何进行配置5. xxxEndpoint如何自动化装配原创 2018-01-14 23:27:24 · 22027 阅读 · 1 评论 -
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 · 24992 阅读 · 1 评论 -
spring boot 源码解析22-spring boot jdbc自动化配置
spring boot jdbc 自动化配置揭秘,深度好文,为你解惑原创 2018-01-10 18:55:56 · 14887 阅读 · 0 评论 -
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 · 16238 阅读 · 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 · 13207 阅读 · 3 评论