目录:
一 什么是lombok
二 lombok安装
三 使用lombok
四 使用logback
一 什么是lombok
在写Java程序的时候经常会遇到如下情形:新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立getter,setter方法还有构造函数等 。
lombok项目的产生就是为了省去我们手动创建getter和setter方法的麻烦,它能够在我们编译源码的时候自动帮我们生成getter和setter方法。
即它最终能够达到的效果是:在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。
二 lombok安装
在项目中导入依赖
1<dependency> 2 <groupId>org.projectlombok</groupId> 3 <artifactId>lombok</artifactId> 4 <version>1.18.10</version> 5 <scope>provided</scope> 6</dependency>
在idea中安装lombok插件
file->settings->plugins->搜索lombok

三 使用lombok
lombok常用注解
@Data
作用在类上,提供类所有属性的get set方法,此外还提供了hashcode equals tostring canequal方法
@Slf4j
注解在类上,为类提供一个属性名为log的slf4j日志对象
@NoArgsConstructor
注解在类上,为类提供一个无参构造器
@AllArgsConstructor
注解在类上,为类提供一个全参构造器
@Builder
注解在类上,使用Builder模式创建对象
四 使用logback
默认情况下,SpringBoot 采用logback来记录日志,并输出 INFO 级别日志到控制台
spring-boot-stater的依赖中包含了logback,无需导包
application.yml
1logging: 2 file: application.log
logback-spring.xml 使用这个文件名放到resource下面无需其他配置,springboot会自动找到这个日志配置
1<configuration> 2 <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> 3 <file>logs/application.log</file> 4 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 5 <!-- rollover daily --> 6 <fileNamePattern>logs/backup/application.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> 7 <maxFileSize>100MB</maxFileSize> 8 <maxHistory>60</maxHistory> 9 <totalSizeCap>50GB</totalSizeCap> 10 </rollingPolicy> 11 <encoder> 12 <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%12.12thread]) %highlight(%-5level{5}) --- %24.24logger.%12.12M\(\) : %msg%n--> 13 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%12.12thread] %-5level{5} --- %24.24logger.%12.12M\(\) : %msg%n 14 </pattern> 15 </encoder> 16 </appender> 17 18 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 19 <encoder> 20 <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%12.12thread]) %highlight(%-5level{5}) --- %24.24logger.%12.12M\(\) : %msg%n--> 21 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%12.12thread] %-5level{5} --- %24.24logger.%12.12M\(\) : %msg%n 22 </pattern> 23 </encoder> 24 </appender> 25 26 <root level="INFO"> 27 <appender-ref ref="STDOUT"/> 28 <appender-ref ref="ROLLING"/> 29 </root> 30</configuration>