1. 程式人生 > 其它 >效能測試如何對瓶頸進行定位?

效能測試如何對瓶頸進行定位?

Springboot整合Swagger

  1. 新建一個springboot-web專案

  2. 測試helloworld程式

  3. 匯入swagger需要的依賴

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.9.2</version>
</dependency>
  1. 編寫Swagger的基本配置

@Configuration
@EnableSwagger2     //開啟Swagger2
public class SwaggerConfig {
}
  1. 測試執行 http://localhost:8080/swagger-ui.html

 

 

  1. 配置Swagger的資訊

//配置了Swagger的Docket的bean例項
@Bean
public Docket docket(){
   return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
}

//配置Swagger的相關資訊
private ApiInfo apiInfo(){
   //作者資訊
   Contact contact = new Contact("czhaiii", "http://localhost:8080", "[email protected]");
   return new ApiInfo(
           "czh Swagger",
           "即使再小的帆也能遠航",
           "v1.0",
           "urn:tos",
           contact,
           "Apache 2.0",
           "http://www.apache.org/licenses/LICENSE-2.0",
           new ArrayList());
}
 
  1. Swagger配置掃描介面+配置是否啟動Swagger

//配置了Swagger的Docker的bean例項
@Bean
public Docket docket(){
   return new Docket(DocumentationType.SWAGGER_2)
          .apiInfo(apiInfo())
          .enable(false)//enable(boolean externallyConfiguredFlag):是否啟動Swagger,如果為false,則Swagger不能在瀏覽器中訪問
          .select()
           //RequestHandlerSelectors   配置要掃描介面的方式
           //basePackage():指定要掃描的包
           //any():掃描全部
           //none():不掃描
           //withClassAnnotation():掃描類上的註解,引數是一個註解的反射物件
           //withMethodAnnotation():掃描方法上的註解
          .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
           //paths():過濾什麼路徑
          .paths(PathSelectors.ant("/kuang/**"))
          .build();
}
  1. 在Swagger中設定多個組

@Bean
public Docket docket1(Environment environment){
   return new Docket(DocumentationType.SWAGGER_2).groupName("A");
}

@Bean
public Docket docket2(Environment environment){
   return new Docket(DocumentationType.SWAGGER_2).groupName("B");
}

@Bean
public Docket docket3(Environment environment){
   return new Docket(DocumentationType.SWAGGER_2).groupName("C");
}

 

 

 
  1. 配置實體類

pojo

@ApiModel("使用者實體類")
public class User {
   @ApiModelProperty("使用者名稱")
   public String username;
   @ApiModelProperty("密碼")
   public String password;
}

controller

注:只有引入到Controller層中實體類才會注入到Swagger中

@PostMapping("/user")
public User user(){
   return new User();
}

Swagger的優點

  1. 我們可以通過Swagger給一些比較難理解的屬性或者介面,增加註釋資訊

  2. 介面文件實時更新

  3. 可以線上測試