配置文件和日志

1.配置文件

1.1配置文件的作用

配置文件可以解决软件硬编码的问题,可以实现个性化。把所有需要改变的信息集中到一个地方。,当我们启动某个程序时,从配置文件中读取数据,并加载运行。

1.2配置文件的格式

  1. application.properties
  2. application.yml(yml是yaml的简写,使用方式是一样的)
  3. application.yaml

在程序启动时,spring boot会自动从classpath路径中查找上面上个文件

注意:

  • .properties和.yml可以并处于同一个项目,如果同时对同一个东西进行配置,以properties为主
  • 不过实际业务中,只会采用一种文件配置格式,可以降低故障率更好的维护

1.3读取配置文件

在项目中使用@Value注解来实现。

我们在读取对象时不是我们写什么类型就是什么类型,而是更具后面提取的类型来进行改变。

properties基本语法“key=value”

缺点:前面重复度高,有很多冗余的信息

#配置端口号
sever.port = 8080
#配置数据库链接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mycnblog?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#自定义配置
demo.key1 = hello,properties
读取
@RestController
public class PropertiesController {
//    读取路由
    @Value("${demo.key1}")
    private String key1;
    public String readKey(){
        return "读取到的配置项key1:"+key1;
    }
}

yml是以树形结构配置文件,基本语法“key: value”

注意:

  1. key和value之间是:+空格,空格不可以省
  2. 在properties中的.用:+换行标识
  3. 如果配置中有字符串,默认不加单引号或双引号
  4. 加单引号会转义特殊字符,使他们无法转义
  5. 加双引号不会转义就表示他的特殊含义
sever:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mycnblog?characterEncoding=utf8&useSSL=false
    username: root
    password: root
@RestController
public class YmlController {
    @Value("${demo.key2}")
    private String key2;
    public String readKey2(){
        return "读取到的配置:"+key2;
    }
}

1.3.1yml配置不同类型的数据及null

# 字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
# 浮点数
float.value: 3.14159
# Null,~代表null
null.value: ~
# "" 空字符串
#, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来
empty。value:''

1.3.2配置对象,集合,map

在配置文件中,填写student的数据
student:
  id: 1
  nane: ming
  age: 18
  创建一个学生类
通过这个关键字,来获取配置中的数据
@ConfigurationProperties(prefix = "student")
把这类交个loc来管理
@Component
使用lombok来简化代码
@Data
public class Student {
    private Integer id;
    private String name;
    private Integer age;
}

1.3.3yml的优缺点

优点

  1. 可读性高,写法简单,易于理解
  2. 支持数据类型,表达对象,数组,list,map等形态
  3. 支持更多的编程语言

缺点

  1. 不适合写复杂的配置文件
  2. 对格式要求比较高

2日志

2.1日志的用途

  1. 系统监测,监测系统的运行状态,以及出现异常的警报
  2. 数据采集,进行统计分析,优化公司策略,个性化推荐
  3. 日志审计,判断统计一些非法攻击,来处理过程中的安全隐患

2.2打印日志

System.out.println("打印日志"); //该打印方式不能看到日志的基本信息 private static Logger logger = LoggerFactory.getLogger(LoggerController.class); @PostConstruct public void print(){ logger.info("==========这是日志框架打印的日志============"); } //该方式则可看到基本信息

2.3门面模式(外观模式)

提供了一个统一的接口,来访问子系统的一群接口

门面模式的优点

  • 减少了系统的相互依赖,实现了客户端和子系统的耦合关系,这使得子系统的变化不会影响到客户端
  • 提高了灵活性,简化了使用难度,只需要和门对象交互就可以
  • 提高了安全性,可以灵活的设定访问权限,不在门对象中开通方法,就无法访问

如果我们不引入日志门面

  1. 不同日志框架的api接口和配置文件不同,维护起来成本高
  2. 如果更换日志框架,应用程序将不得不修改代码,并且会存在一些冲突

2.4日志级别

从高到低,此处的等级分类和测试中的无关

  1. FATAL:致命错误,表示需要立即被处理的系统错误
  2. ERROR:错误信息,级别较高,但不会系统继续运行
  3. WARN:警告信息,不影响使用,但是要注意
  4. INFO:普通信息,用于记录应用程序正常运行时的一些信息
  5. DEBUG:调试信息,需要调试时候的关键信息
  6. TRACE:追踪信息,比DEBUG更细粒度的信息事件
  • 33
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值