SpringBoot学习日记——DAY02(SpringBoot整合Swagger3)

发布时间:2026/5/20 1:44:22

SpringBoot学习日记——DAY02(SpringBoot整合Swagger3) 今天针对SpringBoot整合Swagger3等相关操作展开了学习1.配置Swagger1.1加入依赖dependency groupIdio.springfox/groupId artifactIdspringfox-boot-starter/artifactId version3.0.0/version /dependency1.2编写Swagger的配置类package com.djw.config; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; 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.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; /** * author djw */ Configuration public class SwaggerConfig { Bean public Docket apiConfig() { return new Docket(DocumentationType.OAS_30) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } public ApiInfo apiInfo(){ return new ApiInfoBuilder() .title(董济维的项目) .description(这是一个项目...) .contact(new Contact(董济维,http://www.itszb.com,1918431841qq.com)) .version(1.0) .build(); } }1.3编写application.ymlspring: mvc: pathmatch: matching-strategy: ant_path_matcher banner: image: location: banner.txt server: port: 99991.4在主类中加入注解EnableOpenApipackage com.djw; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.swagger2.annotations.EnableSwagger2; SpringBootApplication EnableOpenApi public class AppServer { public static void main(String[] args) { SpringApplication.run(AppServer.class, args); } }1.5在Controller类中加入注解Api(tags对当前Controller类的说明)在Controller方法加入注解ApiOperation(value对方法的说明和用途)还可以使用ApiImlicitParam对方法的参数做说明也可以利用ApiParam对参数做说明package com.djw.controller; import com.djw.model.Student; import io.swagger.annotations.*; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * author djw */ RestController RequestMapping(/stu) Api(tags 学生管理) public class StuController { GetMapping(list) ApiOperation(查询全部学生数据) public Object list(){ ListStudent list new ArrayListStudent(); list.add(new Student(1,张三,22,男)); list.add(new Student(2,李四,21,男)); list.add(new Student(3,王五,23,女)); list.add(new Student(4,赵六,22,男)); return list; } GetMapping(select/{id}) ApiOperation(根据id获取学生对象) ApiImplicitParams( ApiImplicitParam( name id,value 学生id,required true, paramType path,dataType Integer, dataTypeClass Integer.class ) ) public Object getById(PathVariable Integer id){ return new Student(id,李四,22,男); } PostMapping() ApiOperation(添加学生操作) public Object save(RequestBody ApiParam(namestudent,value学生对象) Student student){ return student; } DeleteMapping(/{id}) ApiOperation(新的删除学生操作) public Object delete(PathVariable Integer id){ return 已删除id为id的学生; } PutMapping() ApiOperation(新的新的更新学生信息) public Object update(RequestBody Student student){ return student; } }1.6在实体类上加入ApiModel,ApiModelPropertypackage com.djw.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * author djw */ Data NoArgsConstructor AllArgsConstructor ApiModel(value 学生对象,description 学生对象,用来对应数据库表student) public class Student { ApiModelProperty(value 学生id,required true,example 1) private int id; ApiModelProperty(value 名字,required true,example 张三) private String name; ApiModelProperty(value 年龄,required true,example 22) private int age; ApiModelProperty(value 男,required true,example 男) private String gender; }1.7测试Swagger2.设置自动重启2.1加入依赖dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-devtools/artifactId /dependency2.22.3配置好了就重启服务器就可以实现修改功能springboot自启动了2.4自动启动的原理SpringBoot自启动技术主要通过两个类的加载器来完成。ClassLoader不会更改的类来自第三方的jar包被加载到Base ClassLoader中会更改的类被加载到Restart ClassLoader2.5排除自动重启资源可以在application.yml文件中配置排除资源spring : devtools: restart : exclude: static/**,public/**,templates/**3.SpringBoot配置文件位置配置程序实参--spring.config.name文件名

相关新闻