博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot笔记04——读取配置文件+使用slf4j日志
阅读量:5096 次
发布时间:2019-06-13

本文共 2559 字,大约阅读时间需要 8 分钟。

前言

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

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

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

file -> settings -> plugins

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

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

org.springframework.boot
spring-boot-configuration-processor
true
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
true

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

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")@Datapublic class Person {    private String name;    private int age;    private double salary;    private Car car;    private List
hobbit; private Map
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;@Datapublic class Car {    private String carName;    private String carBrand;}

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

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、测试

输出配置文件内容

1738909-20190717175043469-1781109925.jpg

INFO级别日志

1738909-20190717175102483-1378806767.jpg

转载于:https://www.cnblogs.com/Jotal/p/11202632.html

你可能感兴趣的文章
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
ORACLE 递归查询
查看>>
[Android] 开发第十天
查看>>
操作~拷贝clone()
查看>>
jQuery源码分析(2) - 为什么不用new jQuery而是用$()
查看>>
[转]【EL表达式】11个内置对象(用的少) & EL执行表达式
查看>>
ArrayList对象声明& arrayList.size()
查看>>
并发编程 线程
查看>>
网络编程
查看>>
关于“设计模式”和“设计程序语言”的一些闲话
查看>>
(一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>