bootstrap.yml与application.yml执行顺序(原因:类加载器的先后顺序)

bootstrap.yml与application.yml执行顺序

结论:bootstrap.yml 先于 application.yml 加载

bootstrap.yml(bootstrap.properties)用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等

application.yml(application.properties) 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

bootstrap.yml 先于 application.yml 加载

应用:当使用 Spring Cloud Config Server 的时候

bootstrap.yml 中

spring.application.name: test
spring.cloud.config.name: testName
spring.cloud.config.uri: http://config1.spring-demo.test.com:8888

原因:类加载器的先后顺序

    负责加载class文件,class文件在文件开头有特定的文件标示,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定
 

 

虚拟机自带的加载器
1.启动类加载器(Bootstrap)C++
2.扩展类加载器(Extension)Java
3.应用程序类加载器(AppClassLoader)Java
  也叫系统类加载器,加载当前应用的classpath的所有类

4.用户自定义加载器  Java.lang.ClassLoader的子类,用户可以定制类的加载方式

注意;java中反射的三种方法:

1.通过Object类的getClass方法来获取

java.lang.Object中定义有getClass方法:public final Class getClass()
所有Java对象都具备这个方法,该方法用于返回调用该方法的对象的所属类关联的Class对

2.用.class的方式

使用类名加“.class”的方式即会返回与该类对应的Class对象。

3.使用Class.forName方法

Class有一个著名的static方法forName:public static Class forName(String className) throws ClassNotFoundException
该方法可以根据字符串参数所指定的类名获取与该类关联的Class对象。如果该类还没有被装入,该方法会将该类装入JVM。
该方法声明抛出ClassNotFoundException异常。顾名思义,当该方法无法获取需要装入的类时(例如,在当前类路径中不存在这个类),就会抛出这个异常。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javafanwk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值