国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程

Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程

2020-11-16 15:24興國First Java教程

這篇文章主要給大家介紹了關(guān)于Spring Boot集成springfox-swagger2構(gòu)建restful API的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。

前言

之前跟大家分享了Spring MVC集成springfox-swagger2構(gòu)建restful API,簡單寫了如何在springmvc中集成swagger2。這邊記錄下在springboot中如何集成swagger2。其實(shí)使用基本相同。

方法如下:

首先還是引用相關(guān)jar包。我使用的maven,在pom.xml中引用相關(guān)依賴(原來我使用的是2.2.0的,現(xiàn)在使用2.4.0的):

?
1
2
3
4
5
6
7
8
9
10
<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>

第二步就是創(chuàng)建swagger的配置類:

這個(gè)配置類和springmvc的寫法完全一致。為了區(qū)分我又重命名一個(gè)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.xingguo.springboot;
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
@Configuration
@EnableSwagger2
public class Swagger2Configuration {
 
 @Bean
 public Docket buildDocket(){
  return new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(buildApiInf())
    .select()
    .apis(RequestHandlerSelectors.basePackage("com.xingguo.springboot.controller"))
    .paths(PathSelectors.any())
    .build();
 }
 
 private ApiInfo buildApiInf(){
  return new ApiInfoBuilder()
     .title("xingguo大標(biāo)題")
     .description("springboot swagger2")
     .termsOfServiceUrl("http://blog.csdn.net/u014231523網(wǎng)址鏈接")
     .contact(new Contact("diaoxingguo", "http://blog.csdn.net/u014231523", "diaoxingguo@163.com"))
     .build();
 
 }
 
}

在原來2.2.0的版本中使用new ApiInfo()的方法已經(jīng)過時(shí),使用new ApiInfoBuilder()進(jìn)行構(gòu)造,需要什么參數(shù)就添加什么參數(shù)。當(dāng)然也可以什么都添加。如:

?
1
2
3
private ApiInfo buildApiInfo(){
 return new ApiInfoBuilder().build();
}

那么頁面顯示的效果如圖:

使用new ApiInfoBuilder().build();
Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程

添加屬性:

Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程

點(diǎn)擊ApiInfoBuilder.Java的源碼可以看到相關(guān)方法使用。

第三步就是在自己的controller添加相關(guān)的注解:

原來使用在類上使用@controller,現(xiàn)在可以使用@RestController,然后方法的@ResponseBody就可以不用寫了,因?yàn)?code>@RestController的注解接口上已經(jīng)添加了,要求版本在4.0.1之后。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
 
 /**
  * The value may indicate a suggestion for a logical component name,
  * to be turned into a Spring bean in case of an autodetected component.
  * @return the suggested component name, if any
  * @since 4.0.1
  */
 String value() default "";
 
}

常用的注解如下:

      - @Api()用于類名

      - @ApiOperation()用于方法名

      - @ApiParam()用于參數(shù)說明

      - @ApiModel()用于實(shí)體類

      - @ApiModelProperty用于實(shí)體類屬性

更加詳細(xì)的含義可以參考官方說明wiki

下面會(huì)用代碼和示例圖說明。

第四部就是在啟動(dòng)項(xiàng)目在瀏覽器上輸入url:

http://{ip}:{port}/swagger-ui.html#/

我在application.properties中設(shè)置的自己的端口號(hào)為9090(如果不設(shè)置,默認(rèn)為8080)

?
1
server.port=9090

所以我的url是:http://localhost:9090/swagger-ui.html

如圖:

Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程

這里會(huì)把相應(yīng)包下的所有controller按類進(jìn)行顯示。

我們看下其中一個(gè)類UserController.java,(請(qǐng)忽略業(yè)務(wù)邏輯,只看注解)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.xingguo.springboot.controller;
 
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
 
import javax.annotation.Resource;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.xingguo.springboot.model.User;
import com.xingguo.springboot.service.UserService;
 
/**
 * Created by diaoxingguo on 2016/10/24.
 */
@Api(value="用戶controller",description="用戶操作",tags={"用戶操作接口"})
@RestController
public class UserController {
 
 @Resource
 private UserService userService;
 
 @ApiOperation("獲取用戶信息")
 @GetMapping("/getUserInfo")
 public User getUserInfo(@ApiParam(name="id",value="用戶id",required=true) Long id,@ApiParam(name="username",value="用戶名") String username) {
  User user = userService.getUserInfo();
  return user;
 }
 
 
 @ApiOperation("更改用戶信息")
 @PostMapping("/updateUserInfo")
 public int updateUserInfo(@RequestBody @ApiParam(name="用戶對(duì)象",value="傳入json格式",required=true) User user){
  int num = userService.updateUserInfo(user);
  return num;
 }
 
 @ApiOperation("添加用戶信息")
 @PostMapping("/saveUser")
 public String saveUser(@RequestBody @ApiParam(name="user",value="json fromat",required=true) User user) {
  userService.saveUser(user);
  return "success";
 }
}

這里說明下,在使用對(duì)象作為參數(shù)時(shí),可以在對(duì)象上添加相應(yīng)的注解,用戶頁面顯示。

如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package com.xingguo.springboot.model;
 
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
 
import java.util.List;
 
/**
 * Created by diaoxingguo on 2016/10/24.
 */
@ApiModel(description="用戶對(duì)象user")
public class User {
 @ApiModelProperty(value="用戶名",name="username")
 private String username;
 @ApiModelProperty(value="狀態(tài)",name="state",required=true)
 private Integer state;
 private String password;
 private String nickName;
 private Integer isDeleted;
 
 private String[] ids;
 private List<String> idList;
 
 public String getUsername() {
  return username;
 }
 
 public void setUsername(String username) {
  this.username = username;
 }
 
 public Integer getState() {
  return state;
 }
 
 public void setState(Integer state) {
  this.state = state;
 }
 
 public String getPassword() {
  return password;
 }
 
 public void setPassword(String password) {
  this.password = password;
 }
 
 public String[] getIds() {
  return ids;
 }
 
 public void setIds(String[] ids) {
  this.ids = ids;
 }
 
 public List<String> getIdList() {
  return idList;
 }
 
 public void setIdList(List<String> idList) {
  this.idList = idList;
 }
 
 public String getNickName() {
  return nickName;
 }
 
 public void setNickName(String nickName) {
  this.nickName = nickName;
 }
 
 public Integer getIsDeleted() {
  return isDeleted;
 }
 
 public void setIsDeleted(Integer isDeleted) {
  this.isDeleted = isDeleted;
 }
 
 
}

顯示的效果如圖:

Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程
Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程

看上圖紅框的部分,其中一個(gè)是json格式的點(diǎn)擊就可以獲取參數(shù)格式。

第二張中可以看到字段相應(yīng)的注釋和是否必填。

如果在字段上添加注釋@ApiModelProperty(required=true)就是必填(默認(rèn)是false),相應(yīng)的頁面optional標(biāo)識(shí)也會(huì)消失,標(biāo)識(shí)這個(gè)字段必填。

點(diǎn)擊下面的try it out按鈕就可以進(jìn)行調(diào)試。

在使用單個(gè)參數(shù)時(shí),如上面代碼中的getUserInfo()方法,對(duì)應(yīng)的效果圖如下:

Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程

這里如果是添加required=true@ApiParam(required=true)則會(huì)在頁面上顯示required的標(biāo)識(shí)。同樣默認(rèn)為false。

其他的使用方式可以自己動(dòng)手試試。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。

原文鏈接:http://blog.csdn.net/u014231523/article/details/54562695

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av中文字幕在线观看 | 久久99精品久久久久久国产越南 | 美日韩一区二区 | 2018自拍偷拍| 久久av一区二区三区亚洲 | 国产在线精品一区二区三区 | 亚洲一区自拍偷拍 | 久久av网| 91在线观| 在线va | 中文字幕国产视频 | 毛片视频网站在线观看 | 成人在线免费 | 久久久精品日韩 | 激情欧美一区二区三区中文字幕 | 欧美激情一区二区三级高清视频 | 色网网站 | 欧美日韩中文 | 亚洲成人精品av | 亚洲视频免费观看 | 欧美精品导航 | 久久精热| 欧美久久久久久久 | 成人精品 | av伊人网 | 精品久久久久久国产 | 亚洲成av人片在线观看无码 | 狠狠躁夜夜躁人人爽天天天天97 | 午夜精品久久久久久久99黑人 | 成人精品久久久 | 亚洲高清在线 | 都市激情综合 | 黄色大片网 | 欧洲成人 | 久久成人国产精品 | 久久精品亚洲成在人线av网址 | 久操视频在线 | 在线视频中文字幕 | 日本高清视频在线播放 | 亚洲激情在线 | 午夜精品在线 |