• SpringBoot的配置 和 日志文件


    我们已经将SpringBoot创建好了,但是,我们针对其底层的配置还没有学习。

    一、SpringBoot的配置

    1 使用application.properties进行配置

    1.1.properties的基本语法。

    properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的==》

    1. # 配置项目端口号
    2. server.port=8084
    3. spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?
    4. characterEncoding=utf8
    5. spring.datasource.username=root
    6. spring.datasource.password=root
    7. //PS:小技巧:配置文件中使用“#”来添加注释信息。

    1.2 读取配置文件

    如果在项目中,想要主动的读取配置文件中的内容,可以使用 @Value 注解来实现
    @Component 在 Spring Boot 启动时候会注入到框架中,注入到框架中时会执行
    @PostConstruct 初始化方法,这个时候就能读取到配置信息了

    50b0f751c0354b22b8ff951fbcea1eb5.png

    1. package org.example.controller;
    2. import lombok.extern.slf4j.Slf4j;
    3. import org.springframework.beans.factory.annotation.Value;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import org.springframework.web.bind.annotation.RestController;
    6. import javax.annotation.PostConstruct;
    7. // 也会注册Bean对象
    8. // 相比@Controller,多了一个作用,将方法返回值作为Http相应正文
    9. @RestController
    10. @RequestMapping("/user")
    11. @Slf4j
    12. public class UserController {
    13. @Value("${my.user.name}")
    14. private String username;
    15. @PostConstruct
    16. public void init() {
    17. //System.out.println(username);
    18. log.debug("配置文件中的my.user.name" + username);
    19. }
    20. }

    5186c03f048643f28c94e2d4590a65e8.png

    我们从图中也可以看出其实使用这种配置书写是非常冗余的。

    2 使用application.yml进行配置

    yml 最大的优势是可以跨语言,不止是 Java 中可以使用 golang、python 都可以使用 yaml 作为配置文件。

    2.1 .yml的基本语法。

     yml 是树形结构的配置文件,它的基础语法是“key: value”,注意 key 和 value 之间使用英文冒号加空格的方式组成的,其中的空格不可省略。

     f5c2a53955154dfa8f5d44628ce73c3f.png

     这样就看起来十分简洁明了。

    2.2 yml 使用进阶

    2.2.1 yml 配置不同数据类型及 null

    1. # 字符串
    2. string.value: Hello
    3. # 布尔值,truefalse
    4. boolean.value: true
    5. boolean.value1: false
    6. # 整数
    7. int.value: 10
    8. int.value1: 0b1010_0111_0100_1010_1110 # 二进制
    9. # 浮点数
    10. float.value: 3.14159
    11. float.value1: 314159e-5 # 科学计数法
    12. # Null,~代表null
    13. null.value: ~

    2.3 读取配置文件

    同1.2。

    3. properties VS yml 总结

    • properties 是以 key=value 的形式配置的键值类型的配置文件,而 yml 使用的是类似 json 格式的树形配置方式进行配置的,yml 层级之间使用换行缩进的方式配置,key 和 value 之间使用“: ”英文冒号加空格的方式设置,并且空格不可省略。
    • properties 为早期并且默认的配置文件格式,但其配置存在一定的冗余数据,使用 yml 可以很好的解决数据冗余的问题。
    • yml 通用性更好,支持更多语言,如 Java、Go、Python 等,如果是云服务器开发,可以使用一份配置文件作为 Java 和 Go 的共同配置文件。
    • yml 虽然可以和 properties 共存,但一个项目中建议使用统一的配置类型文件

    二、 SpringBoot的日志文件

    学习编程,那我们使用日志来获取信息就错不了。SpringBoot在启动后,默认就有日志输出。        

     1 java的日志框架包括:

    log4j:apache提供的日志框架

    log4j2:log4j的升级版

    logback:springboot默认的内置框架

    slf4j:日志的桥接框架

    2 日志的使用:

    2.1  配置日志级别

    • trace:微量,少许的意思,级别最低;
    • info:普通的打印信息;
    • debug:需要调试时候的关键信息打印;
    • warn:警告,不影响使用,但需要注意的问题;
    • error:错误信息,级别较高的错误日志信息;
    • fatal:致命的,因为代码异常导致程序退出执行的事件。

     日志级别配置只需要在配置文件中设置“logging.level”配置项即可,如下所示

    3c47d5e1e40f42dc8ca3417234d083e2.png

    注意:使用情况在类上加注解 @Sef4j 
    @PostConstruct
    public void init() {
        //System.out.println(username);
        log.debug("配置文件中的my.user.name" + username);
    }

    使用日志打印对象,只会打印日志级别以上的内容。

     也可以使用字符串的方式打印

    log.warn("配置文件中的my.user.name:{}",username);
    

    在文件中打印

    配置日志文件的保存路径:

    # 设置日志文件的目录
    logging:
        file:
          path: D:\home\xxx
    配置日志文件的文件名:
    # 设置日志文件的文件名
    logging:
        file:
            name: D:\home\xxx\xxx.xxx

     

  • 相关阅读:
    3.流的输入/输出
    缓存中间件技术选型Memcached、MongoDB、Redis
    java毕业设计数字图像处理课程网站源码+lw文档+mybatis+系统+mysql数据库+调试
    Vue基础之组件通信provide、inject
    FaceBook 遭遇有史以来全球最大宕机
    ffmpeg源码笔记-AvFrame和AvPacket(四)
    JUC06-读写锁ReentrantReadWriteLock
    CVPR 2023 | UniMatch: 重新审视半监督语义分割中的强弱一致性
    java-net-php-python-jspm零担快跑物流管理系统计算机毕业设计程序
    计算组格式表达式的妙用
  • 原文地址:https://blog.csdn.net/TheDevice/article/details/126030473