需要导入的依赖
<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>
config中的配置
//说明该类为配置类,即把该类作为spring的xml配置文件中的bean
@Configuration
//自动扫描,该注解会扫描指定路径下的所有的配置,默认扫描该类所在包下面的所有配置文件
@ComponentScan("com.xxx")
public class SwaggerApiConfig {
/*
* 创建API应用
* apiInfo() 增加API相关信息
* select() 选择哪些路径和api会生成document
* apis() 对所有api进行监控
* paths() 对所有路径进行监控
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.hand.springboot.controller"))
.paths(PathSelectors.any())
.build();
}
/*
* 创建该API的基本信息
* title:访问界面的标题
* description:描述
* version:版本号
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("欢迎使用Swagger测试")
.description("基于SpringBoot实现简单的学生信息的处理")
.version("1.0")
.license("version1.0")
.build();
}
}
把@EnableSwagger2加在Application里面
在写controller中没有限定接收参数的方式,swagger默认每种方法都会生成。
在controller中进行如下配置
//给swagger里加上注释
@ApiImplicitParams({
@ApiImplicitParam(name = "countryname", value = "城市名", paramType = "query")
})
@ApiOperation(value = "查询")
@GetMapping
@ResponseBody
public Map queryByName(Country country){
Map map = new HashMap();
List list = jdbcTemplate.queryForList("select * from country where countryname like "+"'"+country.getCountryname()+"'");
map.put("list",list);
return map;
}
网页上会显示
启动项目,登录 http://localhost:8080/swagger-ui.html 就可以看见接口的信息。
如何动态的配置项目在测试的时候打开swagger,发布不使用
public class SwaggerApiConfig {
/*
* 创建API应用
* apiInfo() 增加API相关信息
* select() 选择哪些路径和api会生成document
* apis() 对所有api进行监控
* paths() 对所有路径进行监控
*/
@Bean
public Docket createRestApi(Environment environment) {
// 设置要显示swagger的环境
Profiles of = Profiles.of("dev", "test");
// 判断当前是否处于该环境
// 通过 enable() 接收此参数判断是否要显示
boolean b = environment.acceptsProfiles(of);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.enable(b)
.apis(RequestHandlerSelectors.basePackage("com.hand.springboot.controller"))
.paths(PathSelectors.any())
.build();
}
/*
* 创建该API的基本信息
* title:访问界面的标题
* description:描述
* version:版本号
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("欢迎使用Swagger测试")
.description("基于SpringBoot实现简单的学生信息的处理")
.version("1.0")
.license("version1.0")
.build();
}
}