SpringBoot整合Swagger2的示例
一、導(dǎo)入maven包
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
二、添加工具類
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/")
.select()
.apis(RequestHandlerSelectors.basePackage("com.nvn.controller"))
.paths(PathSelectors.any())
.build().apiInfo(new ApiInfoBuilder()
.title("SpringBoot整合Swagger")
.description("SpringBoot整合Swagger,詳細(xì)信息......")
.version("1.0")
.build());
}
}
三、添加注解
@RestController
@Api(tags = "用戶管理相關(guān)接口")
@RequestMapping("/user")
public class UserController {
@PostMapping("/")
@ApiOperation("添加用戶的接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "username", value = "用戶名", defaultValue = "李四"),
@ApiImplicitParam(name = "address", value = "用戶地址", defaultValue = "深圳", required = true)
}
)
public RespBean addUser(String username, @RequestParam(required = true) String address) {
return new RespBean();
}
@GetMapping("/")
@ApiOperation("根據(jù)id查詢用戶的接口")
@ApiImplicitParam(name = "id", value = "用戶id", defaultValue = "99", required = true)
public User getUserById(@PathVariable Integer id) {
User user = new User();
user.setId(id);
return user;
}
@PutMapping("/{id}")
@ApiOperation("根據(jù)id更新用戶的接口")
public User updateUserById(@RequestBody User user) {
return user;
}
}
四、注解說明
- @Api注解可以用來標(biāo)記當(dāng)前Controller的功能。
- @ApiOperation注解用來標(biāo)記一個(gè)方法的作用。
- @ApiImplicitParam注解用來描述一個(gè)參數(shù),可以配置參數(shù)的中文含義,也可以給參數(shù)設(shè)置默認(rèn)值,這樣在接口測試的時(shí)候可以避免手動輸入。
- 如果有多個(gè)參數(shù),則需要使用多個(gè)@ApiImplicitParam注解來描述,多個(gè)@ApiImplicitParam注解需要放在一個(gè)@ApiImplicitParams注解中。
- @ApiImplicitParam注解中雖然可以指定參數(shù)是必填的,但是卻不能代替@RequestParam(required = true),前者的必填只是在Swagger2框架內(nèi)必填,拋棄了Swagger2,這個(gè)限制就沒用了,所以假如開發(fā)者需要指定一個(gè)參數(shù)必填,@RequestParam(required = true)注解還是不能省略。
五、如果參數(shù)是一個(gè)對象,對于參數(shù)的描述可以放在實(shí)體類中。
@ApiModel
public class User {
@ApiModelProperty(value = "用戶id")
private Integer id;
@ApiModelProperty(value = "用戶名")
private String username;
@ApiModelProperty(value = "用戶地址")
private String address;
//getter/setter
}
六、效果

附:如果我們的Spring Boot項(xiàng)目中集成了Spring Security,那么如果不做額外配置,Swagger2文檔可能會被攔截,此時(shí)只需要在Spring Security的配置類中重寫configure方法,添加如下過濾即可:
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring()
.antMatchers("/swagger-ui.html")
.antMatchers("/v2/**")
.antMatchers("/swagger-resources/**");
}
以上就是SpringBoot整合Swagger2的示例的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot整合Swagger2的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java?stream?distinct()如何按一個(gè)或多個(gè)指定對象字段進(jìn)行去重
這篇文章主要介紹了java?stream?distinct()如何按一個(gè)或多個(gè)指定對象字段進(jìn)行去重問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Java如何判斷一個(gè)字符串是否包含某個(gè)字符串
這篇文章主要給大家介紹了關(guān)于Java如何判斷一個(gè)字符串是否包含某個(gè)字符串的相關(guān)資料,在實(shí)際編程中,經(jīng)常需要判斷一個(gè)字符串中是否包含某個(gè)子串,需要的朋友可以參考下2023-07-07
使用Springboot根據(jù)配置文件動態(tài)注入接口實(shí)現(xiàn)類
這篇文章主要介紹了使用Springboot根據(jù)配置文件動態(tài)注入接口實(shí)現(xiàn)類,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Spring Cloud學(xué)習(xí)教程之Zuul統(tǒng)一異常處理與回退
Spring Cloud Zuul對異常的處理整體來說還是比較方便的,流程也比較清晰,下面這篇文章主要給大家介紹了關(guān)于Spring Cloud學(xué)習(xí)教程之Zuul統(tǒng)一異常處理與回退的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
校驗(yàn)非空的注解@NotNull如何取得自定義的message
這篇文章主要介紹了校驗(yàn)非空的注解@NotNull如何取得自定義的message,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
使用Java的方式模擬Flutter的Widget實(shí)現(xiàn)多層括號嵌套
這篇文章主要介紹了使用Java的方式模擬Flutter的Widget的實(shí)現(xiàn)多層括號嵌套問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
java使用Feign實(shí)現(xiàn)聲明式Restful風(fēng)格調(diào)用
這篇文章主要為大家詳細(xì)介紹了java使用Feign實(shí)現(xiàn)聲明式Restful風(fēng)格調(diào)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
IDEA新建Springboot項(xiàng)目(圖文教程)
下面小編就為大家?guī)硪黄狪DEA新建Springboot項(xiàng)目(圖文教程)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
Java自帶定時(shí)任務(wù)ScheduledThreadPoolExecutor實(shí)現(xiàn)定時(shí)器和延時(shí)加載功能
今天小編就為大家分享一篇關(guān)于Java自帶定時(shí)任務(wù)ScheduledThreadPoolExecutor實(shí)現(xiàn)定時(shí)器和延時(shí)加載功能,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
springsecurity記住我登錄時(shí)訪問無權(quán)限接口跳轉(zhuǎn)登錄界面的處理方案
這篇文章主要介紹了springsecurity記住我登錄時(shí)訪問無權(quán)限接口跳轉(zhuǎn)登錄界面的處理方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-02-02

