zoukankan      html  css  js  c++  java
  • SpringBoot读取配置文件的几种方式

    摘自:https://www.pianshen.com/article/27551903537/

    一、介绍

    在Spring Boot项目中我们经常需要读取application.yml配置文件的自定义配置,今天就来罗列一下从yaml读取配置文件的一些常用手段和方法。

    二、@Value

    这种是比较简单的方式,直接使用@Value注解获取配置文件信息。
    使用方式如下:
    application.yml配置文件
    在这里插入图片描述

    直接使用@Value注解@Value(“${}”),默认读取application.yml中的配置信息。

    在这里插入图片描述

    在这里插入图片描述

    三、@ConfigurationProperties

    @ConfigurationProperties注解提供了我们将多个配置选项注入复杂对象的能力。它要求我们指定配置的共同前缀。

    可以使用weChat接收we-chat的值,因为这种形式支持从驼峰camel-case到短横分隔命名kebab-case的自动转换。
    比如:
    默认读取application.yml中的配置信息。
    实体类:
    在这里插入图片描述
    在这里插入图片描述

    注意:使用这种方式,yml中的配置信息不能有大写,否则读取不到。

    单独使用@ConfigurationProperties的话依然无法直接使用配置对象,因为它并没有被注册为Spring Bean。我们可以通过两种方式来使得它生效。

    1. 可以使用@Component@Configuration等注解注入Spring IoC使之生效。
    2. 还可以直接使用注解@EnableConfigurationProperties进行注册,这样就不需要显式声明配置类为Spring Bean了。
      另外还有一个注解可以直接扫描在Spring Boot 2.2.0.RELEASE中提供了一个扫描注解@ConfigurationPropertiesScan。它可以扫描特定包下所有的被@ConfigurationProperties标记的配置类,并将它们进行IoC注入。

    注意:这非常适合自动注入和批量注入配置类的场景,但是有版本限制,必须在2.2.0及以上。

    四、@PropertySource

    使用“@Value”与“@ConfigurationProperties”可以从全局配置文件“application.properties”或者“application.yml”中取值,然后为需要的属性赋值。当应用比较大的时候,如果所有的内容都当在一个配置文件中,就会显得比较臃肿,同时也不太好理解和维护,此时可以将一个文件拆分为多个,使用 @PropertySource 注解加载指定的配置文件。
    例如:
    properties文件:

    在这里插入图片描述

    实体类:
    在这里插入图片描述
    在这里插入图片描述

    注意:
    需要有@SpringBootApplication主启动类、和@RunWith(SpringRunner.class)注解
    总结:
    使用@Value注解可以直接读取application.yml配置文件中的配置信息。
    使用@ConfigurationProperties也可以读取application.yml文件中的配置信息。
    使用@ConfigurationProperties@PropertySource可以读取指定properties配置文件中的配置信息。

  • 相关阅读:
    【试水CAS-4.0.3】第07节_CASclient配置单点登录
    30分钟,让你彻底明白Promise原理
    【你离硅谷只差一步】网易中国创业家大赛项目火热征集中
    21分钟学会写编译器
    Android 模拟器下载、编译及调试
    GitLab 自动触发 Jenkins 构建
    微服务监控探索
    感觉要火!妹子实地采访网易猪厂程序员七夕怎么过
    延迟任务调度系统—技术选型与设计(下篇)
    使用QUIC
  • 原文地址:https://www.cnblogs.com/lyh233/p/14894014.html
Copyright © 2011-2022 走看看