引言 SpringBoot项目中的启动类,一般都是XXApplication,例如「StatsApplication」,「UnionApplication」. 每个项目的启动类名称都不一样.但是它的启动类真的是XXApplication吗? META-INF/****Manifest.mf文件 jar文件实际上是class文件的zip压缩存档.jar并不能表达应用程序的便签信息. 「META-INF/Manifest.mf文件提供存档的便签信息.」 Manifest.mf有 「Main-Clas…
本文是通过查看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应用的启动方式很简单,就一行代码,如下图01: 其实这行代码背后主要执行两个方法,一个是构造方法,一个是run方法. 构造方法主要内容就是收集一些数据,和确认一些信息.如下图02: 真正的执行要从run方法开始,为此,SpringBoot特意定义了一个监听器,专门监听这个run方法的执行过程. 这个监听器的名字是,SpringApplicationRunListener,如下图03: 这个接口的方法其实就表示了SpringBoot应用的启动过程. 备注:这个监听器是Sprin…
微信搜「烟雨星空」,白嫖更多好文. 现在 Oracle 官方每隔半年就会出一个 JDK 新版本.按时间来算的话,这个月就要出 JDK15 了.然而,大部分公司还是在使用 JDK7 和 8 . 之前去我朋友家,竟然被嘲笑不会用 JDK8 . 不服气的我,回来之后,当然是重点学习之啊. 话不多说,本文目录如下: 目录: lambda 表达式 接口默认方法和静态方法 函数式接口 方法引用 Optional Stream API 日期时间新 API 一.lambda表达式 先看下 lambda 表达式是…
SpringApplication是SpringBoot的启动程序,我们通过它的run方法可以快速启动一个SpringBoot应用.可是这里面到底发生了什么?它是处于什么样的机制简化我们程序启动的?接下来我们就带着这两个问题来揭开SpringBoot启动过程的神秘面纱. 一.基于Springframework的事件机制 事件是SpringBoot的启动的核心之一.对于事件我想大家都不陌生,在javaAWT事件是在常见不过的了. 1.1.JDK中的事件接口与类 首先我们看一下EventObject…
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项目启动后,无法访问到controller 页面是404错误 查看项目结构,发现是新建工程的启动类位置有问题,controller类应该位于引导类的同级包或者子级包中.需要将下图的引导类放在com.alphajuns包下即可访问controller…