前言

springboot常用的配置文件有yml和properties两种,当然有必要的时候也可以用xml。我个人更加喜欢用yml,所以我在这里使用yml作为例子。yml或properties配置文件可以为我们完成很多工作,我们只需要从配置文件中读取出相关的属性值用起来就行了。

yml语法参考

读取配置文件+idea使用Slf4j记录日志

1、idea安装lombok插件(slf4j需要)

file -> settings -> plugins

查找lombok安装,然后重启idea。

2、创建一个springboot项目,引入相关依赖

<!-- 使用@ConfigurationProperties-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- lombok依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

2、修改application.yml

person:
name: Kobe Bryant
age: 18
salary: 1235478.22
car:
carName: 奔驰S3200
carBrand: 奔驰
hobbit:
- 篮球
- singing
- dancing
daughters:
k1: d1
k2: d2
birthDate: 1980/01/01
marriage: true #时间戳统一转换
spring:
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss

yml语法参考

3、创建实体类

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import java.util.Date;
import java.util.List;
import java.util.Map; @Component //导入Spring IOC容器中管理
@ConfigurationProperties(prefix = "person")
@Data
public class Person {
private String name;
private int age;
private double salary;
private Car car;
private List<String> hobbit;
private Map<String, Object> daughters;
private Date birthDate;
private Boolean marriage;
}

@ConfigurationProperties(prefix = "person")

将整个配置文件映射到对象中,转化为bean。

它可以和@PropertySource 标注一起使用,指定映射哪一个个配置文件。

如果我们没有指定属性文件的地址,Springboot 默认读取 application.properties/application.yml 中的属性文件名。

例如:

@PropertySource("classpath:xxx.yml")
@ConfigurationProperties(prefix = "person")

就会映射xxx.yml中以person为前缀的属性。

Car.java

import lombok.Data;
@Data
public class Car {
private String carName;
private String carBrand;
}

ps: @Data 是lombok的注解,使用该注解会在运行时自动为该实体类生成getter、setter、toString 方法。

lombok具体使用方法参考

3、创建控制类


@Slf4j
@RestController
@EnableConfigurationProperties(Person.class) public class PropertiesController {
@Autowired
private Person person; @RequestMapping(value="/getProperties")
public Person getProperties() {
log.info("/getProperties");
return person;
}
}

@EnableConfigurationProperties(Person.class)这句注解的作用是使ConfigurationProperties生效,把Person类注入到spring的IOC容器中。

关于EnableConfigurationProperties,在SpringBoot的注释中是这样说明的:为带有@ConfigurationProperties注解的Bean提供有效的支持。这个注解可以提供一种方便的方式来将带有@ConfigurationProperties注解的类注入为Spring容器的Bean。

4、测试

输出配置文件内容

INFO级别日志

springboot笔记04——读取配置文件+使用slf4j日志的更多相关文章

  1. SpringBoot学习笔记:读取配置文件

    SpringBoot学习笔记:读取配置文件 配置文件 在以往的项目中,我们主要通过XML文件进行框架配置,业务的相关配置会放在属性文件中,然后通过一个属性读取的工具类来读取配置信息.在SpringBo ...

  2. python学习笔记之读取配置文件【转自https://my.oschina.net/u/3041656/blog/793467】

    [转自https://my.oschina.net/u/3041656/blog/793467] 最近在接触利用python来写测试框架,本人也是个刚接触python,所以是个小菜鸟,今天开始,一点点 ...

  3. springboot 控制台程序读取配置文件(原创)

    首先新建一个springboot项目,此处省略. 1.新建一个application.properties person.name=kevin person.age=6 person.sex=male ...

  4. SpringBoot两种读取配置文件的方式

    方式一 @Value("${custom.group}") private String customGroup; 方式二 @Autowired private Environme ...

  5. springboot 使用consul 读取配置文件(遇到的坑太多,没记录)

    最终成功版. pom引入mavn依赖: <!--consul--> <dependency> <groupId>org.springframework.cloud& ...

  6. springboot学习笔记:3.配置文件使用概要

    Spring Boot允许外化(externalize)你的配置,这样你能够在不同的环境下使用相同的代码. 你可以使用properties文件,YAML文件,环境变量和命令行参数来外化配置.使用@Va ...

  7. springboot工程读取配置文件application.yml的写法

    现在流行springboot框架的项目,里面的默认配置文件为application.yml,我们怎样读取这个配置文件呢? 先贴上我得配置文件吧 目录结构 里面内容 1 写读取配置文件的工具类 @Con ...

  8. springboot工程读取配置文件application.yml的写法18045

    现在流行springboot框架的项目,里面的默认配置文件为application.yml,我们怎样读取这个配置文件呢? 先贴上我得配置文件吧 目录结构 里面内容 1 写读取配置文件的工具类 @Con ...

  9. SpringBoot 整合 slf4j 日志打印

    划水时间,记录一下用到的相关slf4j 日志打印,如何实现配置输出.本地保存log日志文件... 我使用的是SpringBoot框架,slf4j 类库已经包含到了 SpringBoot 框架中,所有, ...

随机推荐

  1. 005 Spring和SpringBoot中的@Component 和@ComponentScan注解

    今天在看@ComponentScan,感觉不是太理解,下面做一个说明. 1.说明 ComponentScan做的事情就是告诉Spring从哪里找到bean 2.细节说明 如果你的其他包都在使用了@Sp ...

  2. python清理docker-harbor的多余镜像

    # coding: utf-8 from operator import itemgetter from urllib import parse import requests import date ...

  3. kotlin中val和var的区别

    var: var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量.这种声明变量的方式和Java中声明变量的方式一样.val: val是一个只读变量,这种声明变量的方式相当于java中的f ...

  4. Vue路由编程式导航以及hash模式

    import Vue from 'vue'; import App from './App.vue'; //引入公共的scss 注意:创建项目的时候必须用scss import './assets/c ...

  5. linux系统执行.exe文件

    首先要了解一下Wine: Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OSX 及 ...

  6. Qt编写自定义控件71-圆弧进度条

    一.前言 现在web形式的图表框架非常流行,国产代表就是echart,本人用过几次,三个字屌爆了来形容,非常强大,而且易用性也非常棒,还是开源免费的,使用起来不要太爽,内置的各种图表和仪表盘等非常丰富 ...

  7. RabbitMQ 入门教程(PHP版) 第六部分:远程调用(RPC)

    在云计算环境中,很多时候需要用它其他机器的计算资源,把一部分计算任务分配到其他节点来完成.RabbitMQ 如何使用 RPC 呢?下面将会通过其它节点完成斐波纳契示例. 流程图  当客户端启动时,它 ...

  8. mybatis typeHandler类型转换器

    typeHandler类型转换器 在JDBC中,需要在PreparedStatement对象中设置那些已经预编译过的SQL语句的参数.执行SQL后,会通过ResultSet对象获取得到数据库的数据,而 ...

  9. LeetCode_374. Guess Number Higher or Lower

    374. Guess Number Higher or Lower Easy We are playing the Guess Game. The game is as follows: I pick ...

  10. dockerfile中设置环境变量

    设置环境变量要用 ENV ENV JAVA_HOME /usr/local/jdk1.8.0_171 ENV PATH $JAVA_HOME/bin:$PATH 用 echo "JAVA_H ...