1.添加Maven依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
<!-- 拷贝相应环境下的资源 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>dev/**</exclude>
<exclude>prod/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${environment}</directory>
</resource>
</resources>
<profiles>
<profile>
<!-- 开发环境 -->
<id>dev</id>
<properties>
<environment>dev</environment>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 生产环境 -->
<id>prod</id>
<properties>
<environment>prod</environment>
</properties>
</profile>
</profiles>
2.Swagger2Config配置
@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "boomsecret", value = "swagger-open", havingValue = "true")
public class Swagger2Config {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.boomsecret.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("admin-api")
.description("")
.termsOfServiceUrl("")
.version("1.0")
// .contact(new Contact("wangjinliang", "", "18201225281@163.com"))
.build();
}
}
3.Controller源码
@RestController
public class UserController {
@ApiOperation(value = "用户登录(仅仅是模拟)", response = UserLoginResponse.class, tags = SwaggerTags.SYSTEM_USER_TAGS)
@RequestMapping(value = "/user/login", method = RequestMethod.POST)
public UserLoginResponse userLogin(@RequestBody UserLoginRequest request) {
UserLoginResponse response = new UserLoginResponse();
response.setToken(UUID.randomUUID().toString());
response.setUsername(request.getUsername());
return response;
}
}
4.打不同环境的包
mvn package -Pdev 开发环境
mvn package -Pprod 线上环境
5.swagger文档地址
http://localhost:8080/demo/swagger-ui.html
boomsecret.swagger-open=true (配置swagger是否生效)
源码 https://gitee.com/jsjack_wang/springboot-demo dev-swagger分支