SpringBoot2源码解析 ApplicationContextInitializer

系统初始化器

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.annotation.Order;
import org.springframework.lang.NonNull;

/**
 * @author itning
 * @date 2020/4/28 20:43
 */
@Order(1)
public class FirstApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
    @Override
    public void initialize(@NonNull ConfigurableApplicationContext applicationContext) {
        System.out.println("FirstApplicationContextInitializer");
    }
}

Spring Annotations

0.前言

转载自:https://github.com/Snailclimb/JavaGuide

可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景。对于每一个注解我都说了具体用法,掌握搞懂,使用 SpringBoot 来开发项目基本没啥大问题了!

JVM系列5 执行子系统

字节码执行引擎

概述

执行引擎是Java虚拟机非常最核心的部分,对于物理级的执行引擎是直接建立在处理器、硬件、指令集合操作系统层面,而虚拟机执行引擎则是由自行定制的指令集与执行引擎的结构体系。执行引擎在执行Java会有解释执行(通过解释器)和编译执行(通过JIT生成的本地代码)两种选择,对于Android ART又多了一种提前编译器(AOT)。

JVM系列4 类的加载

一、概述

本文主要讲述虚拟机如何把 Class文件加载到内存的过程。校验、转换解析和初始化,最终形成可被虚拟机使用的Java类型,这就是虚拟机的类加载机制。类型的加载、连接和初始化都是在程序运行期间完成,这样做的优劣势,如下:

  • 优势:提高Java程序的灵活性,Java动态扩展的语言特性就是依赖运行期动态加载和动态连接。当面向接口的应用程序,可以等到运行时指定实现类;可以通过类加载器,让程序运行时加载一个二进制流作为程序一部分。
  • 劣势:增加类加载的性能开销。