Swagger的配置
SpringBoot与Swagger的版本不兼容的问题
SpringBoot的版本与Swagger版本不兼容导致出现问题:IDEA报错之Failed to start bean ‘documentationPluginsBootstrapper,配置文件加以下一行:
#兼容Swagger的版本
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-web</artifactId>
<version>2.6.0</version>
</dependency>
配置类配置Swagger
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(getApiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.xx.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo getApiInfo(){
return new ApiInfoBuilder()
.title("Swagger2....")
.description("Swagger2")
.version("1.0")
.license("Apache 2.0")
.licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
.build();
}
}
访问地址:http://localhost:端口号/swagger-ui.html#
控制层案例:
import com.zhiyou100.dao.StudentDao;
import com.zhiyou100.entity.ResponseVo;
import com.zhiyou100.entity.Student;
import com.zhiyou100.exception.StudentCrudException;
import com.zhiyou100.service.StudentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("/student")
@Api(tags = "学生管理")
public class StudentAction {
@Autowired
private StudentService studentService;
@GetMapping("/getAll.action")
@ApiOperation("获取所有")
public ResponseVo<List<Student>> getAll(){
return new ResponseVo<>(200,null,studentService.getAll());
}
@GetMapping("/getOne/{sid}.action")
@ApiOperation("获取一个")
@ApiImplicitParam(name = "sid",value = "学号",dataTypeClass = int.class)
public ResponseVo<Student> getOne(@PathVariable("sid") int sid){
return new ResponseVo<>(200,null,studentService.getOneById(sid));
}
@PutMapping("/updateOne.action")
@ApiOperation("修改一个")
@ApiImplicitParam(name = "student",value = "要修改的学生",dataTypeClass = Student.class)
public ResponseVo<String> updateOne(@RequestBody Student student){
int hang=studentService.updateOne(student);
return new ResponseVo<>(200,null,"修改("+student.getSname()+")"+(hang>0?"成功!":"失败!"));
}
@PostMapping("/addOne.action")
@ApiOperation("添加一个")
@ApiImplicitParams({
@ApiImplicitParam(name = "sname", value = "名字", dataTypeClass = String.class,required = true),
@ApiImplicitParam(name = "sex", value = "性别", dataTypeClass = String.class),
@ApiImplicitParam(name = "sage", value = "年龄", dataTypeClass = int.class),
@ApiImplicitParam(name = "score", value = "分数", dataTypeClass = float.class),
@ApiImplicitParam(name = "sdy", value = "政治面貌", dataTypeClass = boolean.class),
@ApiImplicitParam(name = "sbirthday", value = "生日", dataTypeClass = Date.class)
})
public ResponseVo<String> addOne(Student student){
int hang=studentService.addOne(student);
return new ResponseVo<>(200,null,"添加("+student.getSname()+")"+(hang>0?"成功!":"失败!"));
}
@ApiOperation("删除一个")
@ApiImplicitParam(name = "sid",value = "学号",dataTypeClass = int.class)
@DeleteMapping("/deleteOne/{sid}.action")
public ResponseVo<String> deleteOne(@PathVariable("sid") int sid){
Student student=studentService.getOneById(sid);
int hang=studentService.deleteOne(sid);
return new ResponseVo<>(200,null,"删除("+student.getSname()+")"+(hang>0?"成功!":"失败!"));
}
}
实体类案例:
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@SuppressWarnings(value="all")
@Table(name="student")
@ApiModel("学生")
public class Student implements Serializable {
@Id
@Column(name="sid")
@GeneratedValue(strategy = GenerationType.IDENTITY) //主键生成策略:数据库自增
@ApiModelProperty(value="学号")
private Integer sid;
@Column(name="sname")
@ApiModelProperty(value="名字")
private String sname;
@Column(name="sex")
@ApiModelProperty(value="性别")
private String sex;
@Column(name="sage")
@ApiModelProperty(value="年龄")
private Integer sage;
@Column(name="score")
@ApiModelProperty(value="成绩")
private Float score;
@Column(name="sdy")
@ApiModelProperty(value="政治面貌")
private Boolean sdy;
@Column(name="sbirthday")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value="生日")
private Date sbirthday;
}