spring boot:从零开始搭建一个项目 - day 4 控制台输出日志美化 + swagger2
一、logback.xml配置日志美化
在logback.xml中可以进行许多配置,不过最主要的还是<append>
标签下的内容,结合<property>
标签可以实现控制台输出语句美化。比如:
<!--定义日志文件的输出样式-->
<property name="beautyPattern" value="%d{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger) | %msg%n"/>
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${beautyPattern}</pattern>
</encoder>
</appender>
二、集成swagger2
其实感觉自己一个人玩并没有必要上swagger,不过【上他!
直接参考文章:https://www.jianshu.com/p/583e302caa83
1、引入依赖
<!--swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
2、编写配置文件
package com.dingx.personal.common.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2Config {
//是否开启swagger,正式环境一般是需要关闭的,可根据springboot的多环境配置进行设置
@Value(value = "${swagger.enabled}")
Boolean swaggerEnabled;
//自己的包名
private static final String basePackage = "com.dingx.personal";
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
// 是否开启
.enable(swaggerEnabled).select()
// 扫描的路径包
.apis(RequestHandlerSelectors.basePackage(basePackage))
// 指定路径处理PathSelectors.any()代表所有的路径
.paths(PathSelectors.any()).build().pathMapping("/");
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("SpringBoot-Swagger2集成 : dingx")
//描述信息
.description("dingx")
.version("1.0.0")
.build();
}
}
3、各处添加swagger注解
controller
entity
运行项目
……
……
……
看到这里,恭喜你,文章有坑=。=
脑阔疼的时候看到坑简直要炸
直接运行报错:org.springframework.beans.factory.BeanCreationException:Error creating bean with name 'xmlModelPlugin’
需要在pom中引入jaxb-api 据说java9以上都是自带,java8真是对不起了您内
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
此处据网上流传引入的版本是2.3.0,但是死活下不来,就随它了,能取到哪个版本就是哪个版本了,讲究一个随缘。
运行项目,在地址后加上/swagger-ui.html即可
PS:这里插播一条Mybatis plus的小功能
#全局逻辑删除字段值 3.3.0开始支持,详情看下面。
mybatis-plus.global-config.db-config.logic-delete-field=removed
# 逻辑已删除值(默认为 1)
mybatis-plus.global-config.db-config.logic-delete-value=1
# 逻辑未删除值(默认为 0)
mybatis-plus.global-config.db-config.logic-not-delete-value=0
此处指定逻辑删除字段值后,实体类中就可以不用加@TableLogic
标签了。
下篇试试Mybatis plus的自动生成代码,手写entity+service+dao+mapper是有点麻烦了=。=