Lombok
介绍
在Java中,封装是一个非常好的机制,最常见的封装莫过于get,set方法了
无论是Intellij idea 还是Eclipse,都提供了快速生成get,set方法的快捷键,使用起来很是方便,
其实,我们还有更方便的办法,就是今天的主角-Lombok
因为无论是IDEA还是Eclipse生成的get,set方法在我们改变属性名时候还需要重新使用快捷键进行get/set方法
但是Lombok的get/set方法是看不到的。对于程序的可读性不友好
如何使用
导入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
idea中搜索安装lombok插件
使用注解
常见注解 | 描述 |
---|---|
@Setter | 生成set方法 |
@Getter | 生成get方法 |
@NoArgsConstructor | 生成无参构造函数 |
@AllArgsConstructor | 生成全参构造函数 |
@Data | 组合注解上面四种结合形式 |
@ToString | 生成toString方法 |
展示示例
dev-tools
热部署:可以我们不需要重启SpringBoot的情况下进行更新操作
引入该依赖
使用CTRL+F9进行重启操作
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
Swagger2学习
Swagger2介绍
前后端分离开发模式中,api文档是最好的沟通方式。
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
- 及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)
- 规范性(并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)
- 一致性(接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)
- 可测性 (直接在接口文档上进行测试,以方便理解业务)
使用Swagger2
引入swagger2依赖
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
SpringBoot中引入配置类
import com.google.common.base.Predicates;
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.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket webApiConfig(){
//这里的内容也是可以进行编辑的
return new Docket(DocumentationType.SWAGGER_2)
.groupName("Api")
.apiInfo(webApiInfo())
.select()
.paths(Predicates.not(PathSelectors.regex("/admin/.*")))
.paths(Predicates.not(PathSelectors.regex("/error.*")))
.build();
}
private ApiInfo webApiInfo(){
//这里的信息会出现在展示页面上
return new ApiInfoBuilder()
.title("开发API文档")
.description("本文档描述了软件研发接口定义")
.version("1.0")
.contact(new Contact("dashu", "http://dashu.com", "dashu@qq.com"))
.build();
}
}
Swagger2的常用注解
定义实体类和参数
- 定义在JavaBean上:@ApiModel
- 定义在参数上:@ApiModelProperty
定义在SpringBoot控制类的方法中
- 定义在类上:@Api
- 定义在方法上:@ApiOperation
- 定义在参数上:@ApiParam
访问路径
地址:http://localhost:8001/swagger-ui.html
SpringInitailizr
通过IDEA进行帮助我们创建一个SpringBoot项目
进行IDEA中的点点操作就可完成SpringBoot的搭建
SpringBoot配置文件
再SpringBoot中配置文件可以是properties或者是yaml
两个配置文件配置的内容都是相同的。只是文件的格式可能会不一样
下面主要介绍yaml
YAML
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。
非常适合用来做以数据为中心的配置文件
语法格式
普通键值对形式
k: v
对象形式
行内写法: k: {k1:v1,k2:v2,k3:v3}
#或
k:
k1: v1
k2: v2
k3: v3
数组形式:包括(Array)(List)(queue)
行内写法: k: [v1,v2,v3]
#或者
k:
- v1
- v2
- v3
YAML提示jar包
想要再编写SpringBoot的时候起到提示作用。默认SpringBoot会自带的jar包
yaml想要再编写的时候进行Spring的提示,可以导入对应的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
想要再编写SpringBoot的时候起到提示作用。默认SpringBoot会自带的jar包
yaml想要再编写的时候进行Spring的提示,可以导入对应的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>