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.