前言

在项目中经常遇到需要读取配置文件中的配置信息,这些配置信息之所以不写在代码中是因为实际项目发布或者部署之后会进行更改,而如果写在代码中编译之后没有办法进行修改。
之前使用的是properties进行的配置和读取的。
而在SpringBoot中我们采用yml的配置时也需要读取配置文件中的信息。
同时因为这样会导致配置文件增多,所以我们需要分离配置文件。

github:https://github.com/LinkinStars/springBootTemplate

分离配置文件

在application.yml使用include加载不同的配置文件,如下是加载application-config.yml配置文件

spring:
  # 选择加载不同环境的配置文件
  profiles:
    active: dev
    include: config

在application-config.yml配置文件中加入测试参数
demo:
  id: 1
  val: 123

读取配置文件

使用@Component和@ConfigurationProperties注解实现,如下

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; /**
* 读取配置文件中的信息
* @author LinkinStar
*/
@Component
@ConfigurationProperties(prefix = "demo")
public class DemoConfig {
private int id;
private String val; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getVal() {
return val;
} public void setVal(String val) {
this.val = val;
}
}

如何使用

/**
* Demo读取配置测试
* @author LinkinStar
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoConfigTest { @Autowired
private DemoConfig demoConfig; @Test
public void getDemoConfig(){
System.out.println(demoConfig.getId());
System.out.println(demoConfig.getVal());
}
}

总结

1、这些配置主要用于存放那些容易被修改的配置。
2、@ConfigurationProperties和@Value的区别是:前一个作用于对象也就是批量的注入配置信息,而后者是单个指定。
3、分离配置文件同时可以用于分离别的配置信息。

SpringBoot读取yml中的配置,并分离配置文件的更多相关文章

  1. springboot的yml中的bruid没有提示

    解决方案: springboot的yml中的bruid没有提示只要在maven加上:druid-spring-boot-starter(注意版本的统一,否则可能会冲突) 效果图:

  2. springboot 读取 yml 配置的几种方式

    前言:在springboot 项目中一般默认的配置文件是application.properties,但是实际项目中我们一般会使用application.yml 文件,下面就介绍一下在springbo ...

  3. SpringBoot读取.yml配置文件最常见的两种方式-源码及其在nacos的应用

    一.前言 我们在开发中会经常遇到一些可能会变的值,比如数据库的密码,一些关键链接的配置等等. 都需要我们写在配置文件中,这样可以把这些配置文件放到nacos上进行管理,修改nacos的配置,咱们发布的 ...

  4. springboot项目yml中使用中文注释报错的解决方法1

    启动springboot项目时报错:/application.yml.....这大致就是说application.yml有问题,那么目前我所知道的大致两种情况会报错,第一种是yml格式有问题,要注意缩 ...

  5. springboot获取application.yml中的配置信息

    HelloController.java package com.springbootweb.demo.controller; import com.springbootweb.demo.entity ...

  6. springboot在yml中配置控制台sql打印方法小结

    方法一: logging: level: debug level.io.renren: debug path: logs/ file: admin.log   方法二 logging:    leve ...

  7. 从 exe.config 读取appSettings 中的配置数据

    右键解决方案,添加引用--> System.Configuration.dll 在exe.config 中添加数据 <appSettings> <add key=" ...

  8. SpringBoot读取properties中的属性值

    1.在application.properties中添加以下内容: learn.blog.name=hello learn.blog.title=千回教育系统 2.新增属性关联的类: package ...

  9. SpringBoot中如何优雅的读取yml配置文件?

    YAML是一种简洁的非标记语言,以数据为中心,使用空白.缩进.分行组织数据,从而使得表示更加简洁易读.本文介绍下YAML的语法和SpringBoot读取该类型配置文件的过程. 本文目录 一.YAML基 ...

随机推荐

  1. B站资源索引

    自从搭建了B站的监控之后,就收集了一堆up主,下面分类整理一下,排名不分先后,内容会持续更新……2019-4-10 19:04:08 一.酷玩&装机&开箱 1.AS极客 2.Virtu ...

  2. pip install –r ./requirements.txt 报错 改成 pip install -r requirements.txt 成功

    Invalid requirement: '–r'Traceback (most recent call last): File "/home/dev/.pyenv/versions/3.6 ...

  3. Influxdb+Grafana+Telegraf及docker中运行

    目录 参考资料 1. InfluxDB 1. 特征: 2. 特点: 3. 功能及默认 4. 主要概念 1) 与SQL的名词做比较 2) InfluxDB的独有概念 5. 常用命令 1. 用户管理: 6 ...

  4. Android滑动列表(拖拽,左滑删除,右滑完成)功能实现(2)

    ItemTouchHelper类 之前我们实现了滑动列表的一些基本功能,为了实现更多的效果,我们来仔细看一下ItemTouchHelper中的类: ItemTouchHelper.SimpleCall ...

  5. SVM支持向量机 详解(含公式推导)

    关于SVM的内容,这三位老哥写的都挺好的,内容是互补的,结合他们三位的一起看,就可以依次推导出SVM得公式了. https://www.cnblogs.com/steven-yang/p/565836 ...

  6. 20175324 mycp

    具体描述: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容 ...

  7. XLua----热更新

    一.xLua 环境配置 1).Xlua中  Plugin  Xlua复制到 需要热更新的工程中---->Assets子目录 2).开启宏HOTFIX_ENABLE File---->bui ...

  8. Python3.x在linux下print中文问题

    由于python3内部以Unicode实现,在默认非utf-8的Linux上print中文会报错UnicodeEncodeError. 由于系统默认非unicode,python3又以unicode实 ...

  9. SDL 开发实战(七): 使用 SDL 实现 PCM播放器

    在上文,我们做了YUV播放器,这样我们就入门了SDL播放视频.下面我们来做一个PCM播放,即使用SDL播放PCM数据. 下面说明一下使用SDL播放PCM音频的基本流程,主要分为两大部分:初始化SDL. ...

  10. SDL 开发实战(六): 使用 SDL 实现 YUV 播放器

    前面铺垫了这么多,现在终于进入核心的主题了,那就是使用SDL播放视频,本节我们将使用SDL播放YUV视频,也就是做一个YUV播放器. 下面说明一下使用SDL播放YUV视频的基本流程,主要分为两大部分: ...