SpringBoot是如何启动的?】的更多相关文章

spring-boot 根据环境启动: java -jar spring-boot--config--SNAPSHOT.jar --spring.profiles.active=prod…
一.SpringBoot的默认启动图案 在SpringBoot启动的时候,默认的会展示出一个spring的logo,这个图案我们用户是可以自定义的 二.自定义启动图案 方法一: Application中控制图案显示 @SpringBootApplication public class HelloSpringBootApplication { public static void main(String[] args) { SpringApplication application = new…
本文是通过查看SpringBoot源码整理出来的SpringBoot大致启动流程,整体大方向是以简单为出发点,不说太多复杂的东西,内部实现细节本文不深扣因为每个人的思路.理解都不一样,我个人看的理解跟大家看的肯定不一样,到时候表达的出来的云里雾里也没啥用. 首先我将SpringBoot的启动流程整理成以下阶段: SpringApplicaiton初始化 审查ApplicationContext类型 加载ApplicationContextInitializer 加载ApplicationList…
生命周期和事件监听 一个应用的启动过程和关闭过程是归属到“生命周期”这个概念的范畴. 典型的设计是在启动和关闭过程中会触发一系列的“事件”,我们只要监听这些事件,就能参与到这个过程中来. 要想监听事件,首先得有事件监听器,就是常说的Listener.下面就是Spring提供的监听器,如下图01: 按规定所有的监听器都要继承Java提供的EventListener接口,这个接口是一个空的marker接口,其实就是标识一下. 事件一般都有多个,一般也有两种常用解决方法: 要么定义多个监听器接口,一个…
SpringBoot项目快速启动停止脚本 1.在jar包同级目录下,创建 app.sh #!/bin/bash appName=`ls|grep .jar$` if [ -z $appName ] then echo "Please check that this script and your jar-package is in the same directory!" exit 1 fi killForceFlag=$2 function start() { count=`ps -…
概述 说到接触 SpringBoot 伊始,给我第一映像最深的是有两个关键元素: 对照上面的典型代码,这个两个元素分别是: @SpringBootApplication SpringApplication 以及 run() 方法 关于 @SpringBootApplication 注解的剖析已经在上文:<SpringBoot 中 @SpringBootApplication注解背后的三体结构探秘> 中完成了,其实它背后就是一个三体结构,只是 SpringBoot给了其一个包装而已.那么本文我们…
SpringBoot应用的启动方式很简单,就一行代码,如下图01: 其实这行代码背后主要执行两个方法,一个是构造方法,一个是run方法. 构造方法主要内容就是收集一些数据,和确认一些信息.如下图02: 真正的执行要从run方法开始,为此,SpringBoot特意定义了一个监听器,专门监听这个run方法的执行过程. 这个监听器的名字是,SpringApplicationRunListener,如下图03: 这个接口的方法其实就表示了SpringBoot应用的启动过程. 备注:这个监听器是Sprin…
SpringApplication是SpringBoot的启动程序,我们通过它的run方法可以快速启动一个SpringBoot应用.可是这里面到底发生了什么?它是处于什么样的机制简化我们程序启动的?接下来我们就带着这两个问题来揭开SpringBoot启动过程的神秘面纱. 一.基于Springframework的事件机制 事件是SpringBoot的启动的核心之一.对于事件我想大家都不陌生,在javaAWT事件是在常见不过的了. 1.1.JDK中的事件接口与类 首先我们看一下EventObject…
在SpringBoot中入口我们使用: package com.sankuai.qcs.regulation.traffic; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling;…
这几天有网友问,如何在使用docker的情况下传递spring.profiles.active=test,也就是说springboot切换配置文件.以往我们直接通过java启动jar的时候,直接跟上--spring.profiles.active=test或者利用jvm参数-Dspring.profiles.active=test来传递.我写一些命令吧. 非docker下springboot切换配置文件 java -jar test.jar --spring.profiles.active=te…