@Order 与 Ordered 控制加载顺序一、@Order & Ordered二、@Order的使用方式三、Ordered的使用方式四、浅看@Order / Ordered 原理1. @Order / Ordered 控制执行顺序验证2. 浅看执行原理五、总结 一、@Order & Ordered@Order与Ordered 是控制顺序的, 是控制执行顺序,不控制Spring
转载
2024-03-18 20:25:17
898阅读
创建SpringApplication对象, —判断容器类型(web or dapp) —设置ApplicationContextInitializer到对象SpringApplication中 -------利用SpringFactoriesLoader类加载classpath下的META-INFO/spring.factories文件中定义的类路径,名称缓存到SpringFactoriesLo
转载
2024-03-22 14:39:16
159阅读
目录1. @Conditional 注解2. Spring boot 扩展1) @ConditionalOnClass和@ConditionalOnMissingClass注解2) @ConditionalOnBean 和@ConditionalOnMissingBean注解3) @ConditionalOnProperty注解1. @Conditional 注解 &nb
转载
2024-10-17 15:05:58
57阅读
1. 引言本篇博文主要介绍 IOC 容器的启动过程,启动过程分为两个步骤,第一个阶段是容器的启动阶段,第二个阶段是 Bean 实例化阶段,这两个阶段各自需要执行的步骤如下图,接下来会一一介绍。需要注意的是,在 Spring 中,最基础的容器接口方法是由 BeanFactory 定义的,而 BeanFactory 的实现类采用的是 延迟加载,也就是说,容器启动时,只会进行第一个阶段的操作, 当需要某
转载
2024-03-29 07:13:39
0阅读
引言在网上查询 Bean 的加载顺序时,看到了大量的文章中使用@Order注解的方式来控制 bean 的加载顺序,不知道写这些的博文的同学自己有没有实际的验证过,本文希望通过指出这些错误的使用姿势,让观文的小伙伴可以知道@Order的具体的应用场景I. 环境搭建创建一个 maven 项目,pom 文件如下(具体的项目代码,可以在文末获取)org.springframework.boot
转载
2024-03-22 10:18:31
59阅读
了解SpringBoot的配置文件
Spring Boot的配置(配置文件,加载顺序,配置原理)之配置文件配置文件Spring Boot使用一个全局配置文件,配置文件名是固定的application.propertiesapplication.yml配置文件的作用:修改Spring Boot自动配置的默认值,即修改Spring Boot在底层都给我们配置
转载
2024-03-19 09:56:08
82阅读
[code="java"]/** * 父类 * */public class Parent { private int ix = 50; private static int iz = getNext(30); { System.out.println("Parent的初始化块"); int x = 100; int y = getNext(...
原创
2023-05-19 00:08:50
36阅读
什么时候类加载 第一次需要使用类信息时加载。 类加载的原则:延迟加载,能不加载就不加载。 触发类加载的几种情况: (1)、调用静态成员时,会加载静态成员真正所在的类及其父类。 通过子类调用父类的静态成员时,只会加载父类而不会加载子类。 (2)、第一次 new 对象的时候 加载(第二次再 new 同一
转载
2018-07-31 10:24:00
102阅读
2评论
上文提到类加载过程阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码模块就是类加载器。类与类加载器任意一个类。都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机的唯一性,每一个类加载器都拥有一个独立的类名称空间。即使两个类来源于同一个class文件,被同一个虚拟机加载,只要加载他们的类
Spring Boot启动会扫描application.properties或者application.yml文件作为Spring Boot的默认配置文件。在使用过程中会涉及到各种各样的配置,本篇则主要针对配置路径,看一下文件加载的前后顺序。多个配置文件配置了同样得值,会加载哪一个呢?一、内部配置的加载顺序1)配置文件前后顺序执行测试file:/config/file:/classpath:/co
转载
2023-10-07 01:55:10
1672阅读
本文内容来源于博主一次问题排查的过程,最终说明为什么不要将spring-boot相关依赖打入二方包。 先介绍一下背景:我们应用是一个标准的spring+webx工程,博主在一次项目发布前为了再次测试一下自己的代码,将分支部署到日常环境中,但是项目启动的时候报错: 第一眼看到这个堆栈后有点懵逼 第一是上一次部署分支还没问题,距离上次部署自己新增的代码也很简单,不可能写出如此
转载
2024-06-05 14:31:11
122阅读
1.类的加载机制类的加载机制:将编译之后对应的.class文件加载进内存中,并对数据进行校验,解析和初始化,最终形成可被虚拟机直接使用的Java类型。类加载总共有七个步骤: 装载(加载)–>验证–>准备–>解析–>初始化–>使用–>卸载2.类中的成员Java类中的类成员包括:属性,方法,代码块,构造器,内部类 属性,方法,代码块由是否有static修饰分为静态和
转载
2023-07-19 09:56:31
213阅读
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:Bootstrap Classloader
|
Extension Classloader
|
System Classloader1.Bootstrap Classloader
转载
2023-10-12 16:09:48
116阅读
先父类,后子类。静态优先加载,构造方法初始化之前会优先加载类中构造代码快,
原创
2016-12-04 14:25:44
754阅读
问题:java中的类由静态成员和非静态成员组成,在一个类进行加载-初始化的时候顺序是怎么样的呢?1.(静态变量、静态初始化块)–>(变量、初始化块)–> 构造器;2.如果有父类,则顺序是:父类static方法 –> 子类static方法 –> 父类构造方法- -> 子类构造方法转:https://blog.csdn.net/yyg_2015/ar...
转载
2021-08-30 10:40:22
243阅读
一、拦截器与过滤器 在讲Spring boot之前,我们先了解一下过滤器和拦截器。这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的。在分析两者的区别之前,我们先理解一下AOP的概念,AOP不是一种具体的技术,而是一种编程思想。在面向对象编程的过程中,我们很容易通过继承、多态来解决纵向扩展。 但是对于横向的功能,比如,在所有的service方法中开启事务,或者统一记录日志等
转载
2024-09-25 07:17:31
191阅读
这个博客是我看Thinking In Java的笔记与记录简单介绍类加载:在很多编程语言中,程序是作为启动过程的一部分立刻被加载出来的,然后是初始化工作,然后是程序开始。 这些语言必须严格控制初始化的过程,这样才能保证static变量的初始化不会出问题。比如像C++,就有可能出现一个static变量在初始化的过程中,需要另一个static变量已经成功初始化并已经有效,不然就会有问题。而
转载
2023-12-10 07:58:21
52阅读
import org.mybatis.spring.mapper.MapperScannerConfigurer;import org.springframework.boot.autoconfigure.AutoConfigureAfter;import org.springframework.context.annotation.Bean;import org.springframew...
原创
2022-05-17 14:16:36
359阅读
嵌入式Servlet容器启动原理;什么时候创建嵌入式的Servlet容器工厂?什么时候获取嵌入式的Servlet容器并启动Tomcat;获取嵌入式的Servlet容器工厂
原创
2022-05-17 14:11:00
281阅读
1、一般来说,类的代码在初次使用时被加载。通常指创建第一个对象时(构造器其实也是static方法),或者访问类的static域或static方法时会发生加载。2、当类加载器开始加载第一个类的过程中如果发现该类具有基类它将继续进行加载,直至所有的基类被加载完成3、然后根基类的static初始化会被执行,然后是下一个导出类static域,以此类推,直至所有相关类的static域加载初始化完成。4、至此
转载
2023-08-19 21:32:03
70阅读