此配置 不需要在Controller中加任何注解,对于Swagger配置放置位置也没有任何要求,相当的凶残
Swagger
官方介绍:Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。
专业角度:Swagger是由庞大工具集合支撑的形式化规范。这个集合涵盖了从终端用户接口、在Swagger可直接测试接口不需要通过接口测试工具PostMan等。。。。
一,添加依赖
<!-- swagger2 restful接口文档在线自动生成+功能测试-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<!-- 美化界面 wangmx -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.6</version>
</dependency>
二,application.yml中添加
swagger2 配置
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
eureka.instance.prefer-ip-address=true
三,添加配置(SwaggerConfig)
/*
* 类描述:集成swagger框架
* @auther wangmx
* @create 2017/8/9 0009
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Autowired
private Environment env;
@Bean
public Docket createRestApi() {
Predicate<RequestHandler> predicate = new Predicate<RequestHandler>() {
@Override
public boolean apply(RequestHandler input) {
// 除非是在开发环境中否则不开启swagger2
String active = env.getProperty("spring.profiles.active");
/*if(!active.equalsIgnoreCase("prod-8090")){
return false;
}*/
Class<?> declaringClass = input.declaringClass();
if (declaringClass == BasicErrorController.class)// 排除
return false;
if(declaringClass.isAnnotationPresent(RestController.class)) // 被注解的类
return true;
if(input.isAnnotatedWith(ResponseBody.class)) // 被注解的方法
return true;
return false;
}
};
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.useDefaultResponseMessages(false)
.select()
.apis(predicate)
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger2 接口测试专用页面!")//大标题
.version("1.0")//版本
.build();
}
}
放置的位置没有要求,也不需要在Controller加任何注解