springboot启动过程(2)-run方法】的更多相关文章

最近这两年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…
-- 以下内容均基于2.1.8.RELEASE版本 紧接着上一篇(三)SpringBoot启动过程的分析-创建应用程序上下文,本文将分析上下文创建完毕之后的下一步操作:预处理上下文容器. 预处理上下文容器 预处理上下文容器由prepareContext()方法完成,本篇内容全部都是基于这个方法所涉及的内容进行分析. // SpringApplication.java private void prepareContext(ConfigurableApplicationContext contex…
-- 以下内容均基于2.1.8.RELEASE版本 通过粗粒度的分析SpringBoot启动过程中执行的主要操作,可以很容易划分它的大流程,每个流程只关注重要操作为后续深入学习建立一个大纲. 官方示例-使用SpringBoot快速构建一个Web服务 @RestController @SpringBootApplication public class Example { @RequestMapping("/") String home() { return "Hello Wo…
-- 以下内容均基于2.1.8.RELEASE版本 紧接着上一篇[(四)SpringBoot启动过程的分析-预处理ApplicationContext] (https://www.cnblogs.com/lukama/p/14583241.html), 本文将分析上下文容器准备完成之后开始执行刷新流程 // SpringApplication.java private void refreshContext(ConfigurableApplicationContext context) { re…
-- 以下内容均基于2.1.8.RELEASE版本 紧接着上一篇(二)SpringBoot启动过程的分析-环境信息准备,本文将分析环境准备完毕之后的下一步操作:ApplicationContext的创建. 创建指定类型的应用程序上下文容器 // SpringApplication.java ConfigurableApplicationContext context = createApplicationContext(); protected ConfigurableApplicationCo…
1 springApplication的run run方法主要是用于创造spring容器ConfigurableApplicationContext对象. public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); // 构造一个任务执行观察器 stopWatch.start(); // 开始执行,记录开始时间 ConfigurableApplicationC…
1  springboot在启动的时候,会调用run方法,创建环境设置spring容器,其中包含refresh方法,完成配置类解析,各种beanFactoryPostProcess和beanPostProcessor注册,web内置容器构造,国际化配置初始化等,refresh调用了父类AbstractApplicationContext的refresh方法如下. public void refresh() throws BeansException, IllegalStateException…
1   springboot启动时,只需要调用一个类前面加了@SpringBootApplication的main函数,执行SpringApplication.run(DemoApplication.class, args)即可,这里初始化了一个SpringApplication实例,然后调用run启动springboot.run方法中,调用了initialize,如下 @SuppressWarnings({ "unchecked", "rawtypes" }) p…
1.1 Springboot启动: @SpringBootApplication public class ServerApplication { public static void main(String[] args) { SpringApplication.run(ServerApplication.class,args); } } 从上面代码看,调用了SpringApplication的静态方法run.这个run方法会构造一个SpringApplication的实例,然后再调用这里实例…
使用了很长时间的springboot了,一直都知道它简单易用,简化了框架的搭建过程,但是还是不知道它是如何启动的,今天就跟着springboot的源码,去探探这其中的奥妙 以下是spring应用的启动: @SpringBootApplication public class Application extends WebMvcConfigurerAdapter { public static void main(String[] args) { //加载配置文件 System.setProper…
-- 以下内容均基于2.1.8.RELEASE版本 由上一篇SpringBoot基本启动过程的分析可以发现在run方法内部启动SpringBoot应用时采用多个步骤来实现,本文记录启动的第二个环节:环境信息准备 阅读提示 阅读本文应当关注的重点: 应用一开始启动阶段通过SPI扩展机制获取的接口,往往他们就是Spring框架扩展的一部分 有关于事件发布的接口,它们用于处理不同阶段的任务,这里也是Spring框架扩展的一部分 默认配置和指定环境的配置(profiles)他们的关系(是否覆盖,优先级等…
Info.plist常见的设置 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 注:在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”  项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist” 项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关 Info.pl…
1.介绍 springboot提供非常丰富回调接口,利用这些接口可以做非常多的事情,对于一些常用的回调接口进行介绍 2.常用的拓展接口 1.ApplicationContextInitializer 2.ApplicationListener 3.ApplicationRunner 4.CommandLineRunner 3.实例: 1.ApplicationContextInitializer接口是在spring容器初初始化之前调用的 创建MyApplicationContextInitial…
在上一章我们分析了SpingBoot启动流程中实例化SpingApplication的过程. return new SpringApplication(primarySources).run(args); 这篇文章咱么说下run()方法开始之后都做了那些事情. 继续往下跟着源码进入到run()这个是比较核心的一个方法了 public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new Sto…
一.SpringBoot自动拉起Tomcat 原文链接:http://www.studyshare.cn/blog-front/blog/details/1136 SpringBoot框架是当前比较流行的java后端开发框架,与maven结合大大简化了开发人员项目搭建的步骤,我们知道 SpringBoot的启动类启动后,tomcat容器.SpringMVC.spring事务等第三方依赖也已经自动启动.那么SpringBoot是如何启动这 些第三方依赖的呢?下面以SpringBoot拉起tomca…
一.SpringBoot自动拉起Tomcat SpringBoot框架是当前比较流行的java后端开发框架,与maven结合大大简化了开发人员项目搭建的步骤,我们知道SpringBoot的启动类启动后,tomcat容器.SpringMVC.spring事务等第三方依赖也已经自动启动.那么SpringBoot是如何启动这些第三方依赖的呢?下面以SpringBoot拉起tomcat容器为例,进行源码分析. 二.源码解析之配置文件加载嵌入式Tomcat 1.进入SpringBoot启动类,@Sprin…
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应用的启动方式很简单,就一行代码,如下图01: 其实这行代码背后主要执行两个方法,一个是构造方法,一个是run方法. 构造方法主要内容就是收集一些数据,和确认一些信息.如下图02: 真正的执行要从run方法开始,为此,SpringBoot特意定义了一个监听器,专门监听这个run方法的执行过程. 这个监听器的名字是,SpringApplicationRunListener,如下图03: 这个接口的方法其实就表示了SpringBoot应用的启动过程. 备注:这个监听器是Sprin…
1. 概述 老话说的好:把简单的事情重复做,做到极致,你就成功了. 言归正传,Springboot的启动过程,一直都是面试的高频点,今天我们用当前最新的 Springboot 2.6.2 来聊一聊 Springboot 的启动过程. 2. 工程搭建 2.1 maven 依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent&l…
我们知道,SpringBoot程序的启动很简单,代码如下: @SpringBootApplication public class Application { public static void main(String[] args){ SpringApplication.run(Application.class,args); } } 调用SpringApplication的静态方法run,这个run方法会构造一个SpringApplication实例,然后这调用这个实例的run方法就能启动…
Spring Boot作为目前最流行的Java开发框架,秉承"约定优于配置"原则,大大简化了Spring MVC繁琐的XML文件配置,基本实现零配置启动项目. 本文基于Spring Boot 2.1.0.RELEASE版本了解Spring Boot如何启动 首先让我们看一下最简单的Spring Boot启动代码 @SpringBootApplication public class DemoApplication { public static void main(String[] a…
遇到一个问题,需要从yml文件中读取数据初始化到static的类中.搜索需要实现ApplicationRunner,并在其实现类中把值读出来再set进去.于是乎就想探究一下SpringBoot启动中都干了什么. 引子 就像引用中说的,用到了ApplicationRunner类给静态class赋yml中的值.代码先量一下,是这样: @Data @Component @EnableConfigurationProperties(MyApplicationRunner.class) @Configur…
我们都知道SpringBoot自问世以来,一直有一个响亮的口号"约定优于配置",其实一种按约定编程的软件设计范式,目的在于减少软件开发人员在工作中的各种繁琐的配置,我们都知道传统的SSM框架的组合,会伴随着大量的繁琐的配置:稍有不慎,就可能各种bug,被人发现还以为我们技术很菜.而SpringBoot的出现不仅大大提高的开发人员的效率,还能避免由于"手抖"带来的配置错误. 很多程序员都感慨SpringBoot的到来大大解放了生产力,但是也有聪明的程序猿会多思考一下下…
前言 SpringBoot项目的启动流程是很多面试官面试中高级Java程序员喜欢问的问题.这个问题的答案涉及到了SpringBoot工程中的源码,也许我们之前看过别的大牛写过的有关SpringBoot项目启动流程的文章,但是自己没有去研究一遍总是会记忆不深刻.有句话叫做"纸上来得终觉浅,绝知此事要躬行",我觉得说得非常在理.底层的东西,也只有自己深入研究过一遍甚至好几遍源码才能彻底搞懂并记忆牢固.下面笔者来带领大家详细分析SpringBoot启动过程中到底做了哪些事情,把本文仔细看完了…
zookeeper简介 zookeeper是为分布式应用提供分布式协作服务的开源软件.它提供了一组简单的原子操作,分布式应用可以基于这些原子操作来实现更高层次的同步服务,配置维护,组管理和命名.zookeeper的设计使基于它的编程非常容易,若我们熟悉目录树结构的文件系统,也会很容易使用zookeeper的数据模型样式.它运行在java上,有java和c的客户端. 协作服务因难于获取正确而臭名远扬,他们特别易于出错如竞争条件和死锁.zookeeper的动机是减轻分布式应用中从零开始实现协作服务的…
SpringBoot启动加载类ApplicationRunner 有时希望项目在启动的时候加载一些系统参数,就要用到ApplicationRunner ApplicationRunner是一个接口,我们需要实现它,并重写run()方法,当项目启动时,run()方法便会自动执行 @Component @Order(value=1) public class StartLoader implements ApplicationRunner { @Override public void run(Ap…
一.准备: IDEA 使用简单手写导包实现spring boot,未使用idea自带的spring创建方法 可以更加简单理解springboot启动过程 二.开始 1.打开idea创建project 2.选择maven  >>  next 都不要勾选,创建空的maven项目 3.输入GAV    唯一确定一个jar包    整个项目就是一个jar包 GroupId.ArtifactId.Version (com).(demo).(默认版本就行) 4.输入项目名称以及项目存放位置 5.创建成功(…
所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 在前面的几篇文章中,我们多次提到这么一个转化过程: Bean配置 --> BeanDefinition --> Bean对象 Bean的配置可以是xml配置,也可以是java配置.BeanDefinition配置在内存中数据对象,也是Bean的元数据.在springboot启动过程当中,refresh上下文这个步骤将会解析xml配置以及java配置,从而把Bean的配置解析成为Bea…
SpringBoot启动方式,Spring Boot 定义系统启动任务 SpringBoot启动方式 1.1 方法一 1.2 方法二 1.2.1 start.sh 1.2.2 stop.sh 1.2.3 run.sh 2.Spring Boot 定义系统启动任务 2.1 CommandLineRunner 2.2 ApplicationRunner 部分内容原文地址: 小猴子豆芽:在Linux上发布和后台运行Springboot项目 江南一点雨:Spring Boot 定义系统启动任务,你会几种…