4. SpringBoot整合devtools & Lombok & logback

一、 SpringBoot整合devtools(热部署 仅需依赖)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

二、 SpringBoot整合lombok(自动生成getter setter 构造方法 toString)

  1. 引入依赖

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.10</version>
        <scope>provided</scope>
    </dependency>
    
  2. 实体类常用注解

    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.extern.slf4j.Slf4j;
    
    // getter setter
    @Data
    // 无参构造
    @NoArgsConstructor
    // 有参构造
    @AllArgsConstructor
    // 自动生成日志对象
    @Slf4j
    public class Demo {
        private Integer id;
        private String name;
        private Integer age;
    }
    
  3. 下载idea对lombok支持的插件

三、日志(定位错误显示运行状态)

SpringBoot默认支持logback

logback配置文件 logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 在IDE中运行, 控制台输出全部日志 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        </filter>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger{36}) |
                %msg%n
            </pattern>
        </encoder>
    </appender>

    <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 在IDE中运行, 不输出日志文件, 打包时level被portable-config-maven-plugin插件改为DEBUG, 输出日志文件 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <File>logs/logback.log</File>
        <!-- 按每小时滚动文件,如果一个小时内达到10M也会滚动文件, 滚动文件将会压缩成zip格式, 最多保留672个滚动文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/jx-film-%d{yyyy-MM-dd-HH}.%i.zip</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>672</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{MM:dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="ErrorConsole" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 在IDE中运行, 控制台输出全部日志, 打包时level被portable-config-maven-plugin插件改为OFF, 控制台不输出日志 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger{36})
                | %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- project default level -->
    <logger name="父包名" level="DEBUG"/>
    <logger name="org.springframework.web" level="DEBUG"/>
    <logger name="org.springframework.core.env.PropertySourcesPropertyResolver" level="WARN"/>


    <!--日志级别-->
    <root level="DEBUG">
        <!--日志输出的目的地-->
        <appender-ref ref="Console"/>
        <appender-ref ref="RollingFile"/>
    </root>
</configuration>
原文地址:https://www.cnblogs.com/forelim/p/15384641.html