yml配置文件、加载顺序、配置原理

SpringBoot学习之路(五)- yml配置文件、加载顺序、配置原理

LD is tigger forever,CG are not brothers forever, throw the pot and shine forever.
Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay away from poor people.
talk is cheap, show others the code,Keep progress,make a better result.
Survive during the day and develop at night。

目录

概 述

SpringBoot 初步开始

server:
port: 8081

8081

properties配置文件:

@Value获取值和@ConfigurationProperties获取值比较
@Value获取值和@ConfigurationProperties获取值比较

创建方式

c、@Bean 注解:SpringBoot 添加组件配置类的方式
b方式在开发的时候太麻烦,需要写配置文件,还得在启动类上配置加载进去。
SpringBoot推荐给容器中添加组件的方式:
1)、 创建配置类,配置要注入的类

package com.yhhy.springboot.springboot.config;
import com.yhhy.springboot.springboot.service.HelloService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @Configuration: 指明当前类是一个配置类,就是来替代之前的Spring配置文件
 * spring配置时:<bean></bean>标签添加组件的
 */
@Configuration
public class MyAppConfig {
    /**
     * Bean注解:能标注在方法上,也能作为原注解;
     * 将方法的返回值添加到容器中,容器中这个组件默认的id就是方法名
     * @return
     */
    @Bean
    public HelloService helloService(){
        System.out.println("配置类@Bean给容器中添加组件了");
        return new HelloService();
    }
}


可以看出来,此service是注入到容器中了,而且不用写第一种方法的xml和在主配置类上也不用加导入注解了;

SpringBoot 默认使用方法名作为类存放到容器的ID,这点要注意,例如我要改了方法名称后,获取需用最新的方法名;

4、Profile 文件
Profile是spring对不同环境提供不同配置功能的支持(开发、测试、生产),可以通过激活指定参数等方式快读切换环境。
默认使用application.proerties ,可以激活使用相关环境配置文件

3.激活指定profile
在配置文件properties中指定配置 spring.profiles.active=dev
命令行方式激活

二、加载顺序
SpringBoot也可以从以下位置加载配置;
优先级从高到低
高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置

三、自动配置原理
SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration

@EnableAutoConfiguration作用:
点进去之后:利用@Import(EnaableAutoConfigurationImportSelector.class)给容器导入了一些;
EnaableAutoConfigurationImportSelector.class作
getCandidateConfigurations点进去之后:

SpringFactoriesLoader.loadFactoryNames()
扫描所有jar包类路径下 META-INF/spring.factories
把扫描到的这些文件的内容包装成properties对象
从properties中获取到EnableAutoConfiguration.class类(类名)对应的值,然后把他们添加在容器中.
每一个这样的 xxxAutoConfiguration类都是容器中的一个组件,都加入到容器中,用他们来做自动配置;

SpringBoot精髓:
​ 1)、SpringBoot启动会加载大量的自动配置类

​ 2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;

​ 3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)

​ 4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;

总结:

相关工具如下:

分析:

小结:

yml配置文件、加载顺序、配置原理~

参考资料和推荐阅读

1.链接: (https://blog.csdn.net/qq_36698956/article/details/85994093).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值