![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring Boot源码
Spring Boot源码,SpringApplication.run启动流程分析,Spring Boot与Spring的关系
it_lihongmin
不要觉得自己怎么样,现实就是比你厉害的人,比你更努力!
当才华撑不起自己野心的时候,老老实实地踏实学习吧!
展开
-
Spring Boot源码 - @ConditionalOnBean实现分析
在上一篇@Conditional之后,知道了动态判断注册bean的是怎么实现的。执行的时机,回调时传入了什么对象,只是在Spring BootCondition下面会有很多更复杂的情况,所以就使用比较常见的@ConditionalOnBean为例,分析其结构和回调的逻辑。@Target({ ElementType.TYPE, ElementType.METHOD })@Retention(RetentionPolicy.RUNTIME)@Documented@Conditional...原创 2020-06-30 22:29:12 · 1360 阅读 · 0 评论 -
Spring Boot源码(六) - 自动装配(下)- AutoConfigurationImportSelector
继续上一篇,知道了执行时机和调用顺序,继续分析两个方法的逻辑,是怎样实现自动装配的。AutoConfigurationImportSelector.AutoConfigurationGroup1、process@Overridepublic void process(AnnotationMetadata annotationMetadata, DeferredImportSelector deferredImportSelector) { // 断言判断,肯定为true ...原创 2020-06-26 14:38:51 · 2381 阅读 · 0 评论 -
Spring Boot源码(五) - 自动装配(上)
按照SpringApplication的run方法执行流程,在refreshContext时候会调用refresh方法,其中会在ConfigurationClassPostProcessor中处理@Import,ImportSelector等(详细可以参见:SpringIoc源码(十)- ApplicationContext(六)- refresh(ConfigurationClassPostProcessor上)或Spring源码-ImportSelector实现分析)。而自动装配则是通过@...原创 2020-06-24 20:33:13 · 551 阅读 · 0 评论 -
Spring Boot源码(七) - 嵌入式Servlet服务器(Tomcat)
目录1、获取Servlet服务器工厂2、根据不同Web类型的AbstractApplicationContext,对应不同的ServletContextInitializer以初始化准备3、调用工厂方法生产Servlet服务器4、在ConfigurableEnvironment中设置ServletContext属性 通过上一篇博客做好了Spring容器(AbstractApplicationContext)的refresh之前的准备工作,下面则进行refresh操作。整体流程可以参..原创 2020-07-02 23:07:42 · 731 阅读 · 0 评论 -
Spring Boot源码(四) - prepareEnvironment、反射创建ApplicationContext对象、prepareContext
目录一、Environment初始化二、反射创建ApplicationContext对象// 将main方法的args参数进行封装ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);// 准备EnvironmentConfigurableEnvironment environment = prepareEnvironment(listeners, applicationArgu原创 2020-06-22 22:10:11 · 477 阅读 · 0 评论 -
Spring Boot源码(三) - SpringApplicationRunListener(EventPublishingRunListener)生命周期和回调时机
Spring Boot定义的SpringApplicationRunListener实现类只有EventPublishingRunListener,主要是定义了其生命周期,并且在Spring Boot启动过程中完成回调。原创 2020-06-20 21:37:14 · 2136 阅读 · 0 评论 -
Spring Boot源码(二) - SpringApplication的run方法
Spring Boot在执行SpringApplication的run方法之前,其实在构造函数中已经完成了很多初始化的准备操作,并且在run方法之前我们可以配置很多信息(上一篇博客中分析了很多的字段都是有Setter的)。比如我们可以将代码写作如下:原创 2020-06-20 13:04:31 · 1092 阅读 · 0 评论 -
Spring Boot源码(一) - 分析总览
Spring Boot当前版本为2.2.0,之前一直对Spring Boot的各个模块比较模糊,很难理解自动装配等注解与容器启动的关系等。还是先看一下,Spring Boot的特点:1、2、3、4、5、6、原创 2020-06-18 22:45:54 · 374 阅读 · 0 评论 -
Spring Boot Admin配置属性和问题
目录1、Spring Boot Admin服务端配置2、Spring Boot Admin客户端配置3、配置说明1)、jolokia2)、loggers3)、spring.boot.admin.client.instance.prefer-ip1、Spring Boot Admin服务端配置配置信息 配置说明 spring.boot.admin.conte...原创 2019-07-09 23:29:42 · 4966 阅读 · 2 评论 -
Spring Boot Admin监控服务
目录一、配置监控地址方式Spring Boot Admin搭建 1、服务端 1)、@SpringBootApplication启动类 2)、配置信息 2、客户端 1)、maven依赖 2)、@SpringBootApplication启动类 3)、配置信息 3、启动服务,查看效果二、注册中心方式的Spring Boot Ad...原创 2019-07-09 22:26:14 · 1592 阅读 · 1 评论 -
Spring Boot集成Mybatis
目录一、Spring Boot集成Mybatis1、start.spring.io创建项目2、配置信息3、服务代码1)、SpringBootApplication启动类2)、Controller3) 、用MyBatisGenerator生成 dao层相关二、Spring Boot中Mybatis相关配置1、Spring Boot的Mybatis配置(or...原创 2019-07-08 21:33:09 · 505 阅读 · 0 评论 -
Spring Boot集成JdbcTemplate
目录1、start.spring.io创建项目2、配置信息3、服务代码1)、启动类(启动类使用默认生成的就可以)2)、controller层3)、service层4、访问应用 创建Spring Boot项目,可以先了解其创建的两种方式(参考:Spring Boot概览和环境搭建),一般比较喜欢用start.spring.io网站上直接进行创建。项目GitHub地址...原创 2019-07-07 21:27:31 · 370 阅读 · 0 评论 -
Spring Boot概览和环境搭建
目录一、概览和特点二、创建Spring Boot项目1、http://start.spring.io(强烈推荐)2、idea的Spring Boot Initilizr插件三、spring boot的参数优先级(由高到低)一、概览和特点Spring Boot项目可以轻松的创建独立的,生产级的基于Spring的应用程序,程序集成了很多的第三方库以更少的直接依赖和配置就能创...原创 2017-05-26 21:43:06 · 292 阅读 · 0 评论