SpringBoot应用的启动方式很简单,就一行代码,如下图01: 其实这行代码背后主要执行两个方法,一个是构造方法,一个是run方法. 构造方法主要内容就是收集一些数据,和确认一些信息.如下图02: 真正的执行要从run方法开始,为此,SpringBoot特意定义了一个监听器,专门监听这个run方法的执行过程. 这个监听器的名字是,SpringApplicationRunListener,如下图03: 这个接口的方法其实就表示了SpringBoot应用的启动过程. 备注:这个监听器是Sprin…
生命周期和事件监听 一个应用的启动过程和关闭过程是归属到“生命周期”这个概念的范畴. 典型的设计是在启动和关闭过程中会触发一系列的“事件”,我们只要监听这些事件,就能参与到这个过程中来. 要想监听事件,首先得有事件监听器,就是常说的Listener.下面就是Spring提供的监听器,如下图01: 按规定所有的监听器都要继承Java提供的EventListener接口,这个接口是一个空的marker接口,其实就是标识一下. 事件一般都有多个,一般也有两种常用解决方法: 要么定义多个监听器接口,一个…
SpringBoot源码分析之SpringBoot的启动过程 发表于 2017-04-30   |   分类于 springboot  |   0 Comments  |   阅读次数 SpringBoot的启动很简单,代码如下: 1 2 3 4 5 6 @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyAppli…
最近这两年springboot突然火起来了,那么我们就来看看springboot的运行原理. 一.springboot的三种启动方式: 1.运行带有main方法的2.通过命令 Java -jar命令3.通过spring-boot-plugin的方式 二.springboot 启动时执行方法,有两种方式 第一种方式是用启动时的main方法加载静态方法. 另一种是用初始化注解@postconstruct 执行.(注意点必须void并且参数). 注意点:[1.@PostConstruct会先被执行,静…
SpringBoot启动 Spring Boot通常有一个名为*Application的入口类,在入口类里有一个main方法,这个main方法其实就是一个标准的java应用的入口方法. 在main方法中使用SpringApplication.run方法启动SpringBoot应用项目. 其中@SpringBootApplication是Spring Boot的核心注解,它是一个组合注解: 其中@SpringBootApplication注解主要组合了@Configuration.@EnableA…
1.1 Springboot启动: @SpringBootApplication public class ServerApplication { public static void main(String[] args) { SpringApplication.run(ServerApplication.class,args); } } 从上面代码看,调用了SpringApplication的静态方法run.这个run方法会构造一个SpringApplication的实例,然后再调用这里实例…
一.简介 Spring Boot简化了Spring应用的开发,采用约定大于配置的思想,去繁从简,很方便就能构建一个独立的.产品级别的应用. 1.传统J2EE开发的缺点 开发笨重.配置繁多复杂.开发效率低下.部署流程复杂.第三方技术集成难度大. 2.SpringBoot的优点 快速重建独立运行的Spring项目以及与主流框架集成. 使用嵌入式的Servlet容器,应用无需打成WAR包 starters自动依赖与版本控制 大量的自动配置.简化开发,也可以修改其默认值 无需配置XML,无代码生成 准生…
-- 以下内容均基于2.1.8.RELEASE版本 紧接着上一篇(三)SpringBoot启动过程的分析-创建应用程序上下文,本文将分析上下文创建完毕之后的下一步操作:预处理上下文容器. 预处理上下文容器 预处理上下文容器由prepareContext()方法完成,本篇内容全部都是基于这个方法所涉及的内容进行分析. // SpringApplication.java private void prepareContext(ConfigurableApplicationContext contex…
-- 以下内容均基于2.1.8.RELEASE版本 紧接着上一篇(二)SpringBoot启动过程的分析-环境信息准备,本文将分析环境准备完毕之后的下一步操作:ApplicationContext的创建. 创建指定类型的应用程序上下文容器 // SpringApplication.java ConfigurableApplicationContext context = createApplicationContext(); protected ConfigurableApplicationCo…
-- 以下内容均基于2.1.8.RELEASE版本 通过粗粒度的分析SpringBoot启动过程中执行的主要操作,可以很容易划分它的大流程,每个流程只关注重要操作为后续深入学习建立一个大纲. 官方示例-使用SpringBoot快速构建一个Web服务 @RestController @SpringBootApplication public class Example { @RequestMapping("/") String home() { return "Hello Wo…