SpringBoot整合Swaggerui及問題解決
目前在做前後臺分離專案的後臺介面部分,故在springboot中引入了swaggerui來做restful介面測試。本文首先描述springboot整合swaggerui的過程,其次,講述本人在整合過程中遇到的問題及解決方案。
一、springboot整合swaggerui
(1)pom檔案中新增依賴
<!-- swaggerui相關依賴 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency>
(2)新增swaggerui配置類
package com.janis;
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 SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.janis.controller"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("janis Manage Swagger RESTful APIs")
.description("綜合管理 Swagger API 服務")
.termsOfServiceUrl("http://swagger.io/")
.contact(new Contact("janis", "127.0.0.1", " [email protected]"))
.version("1.0")
.build();
}
}
(3)在controller中新增swaggerui介面註解
@Api(value = "檢查模板操作", description = "檢查模板操作") @Controller @RequestMapping("/CheckTemplate") public class CheckTemplateController {//類上添加註解
//方法上添加註解 @ApiOperation(value = "查詢檢查模板主要資訊") @RequestMapping(value = "/queryCheckTemplate/{pageNum},{pageSize}", method = RequestMethod.GET) @ResponseBody public CommonResponse<List<Checktemplate>> queryCheckTemplate( @ApiParam(name = "pageNum", value = "當前頁數") @RequestParam(value = "pageNum", required = false, defaultValue = "1") int pageNum, @ApiParam(name = "pageSize", value = "每頁資料量") @RequestParam(value = "pageSize", required = false, defaultValue = "1") int pageSize) { logger.info("查詢檢查模板主要資訊"); // 設定分頁資訊,分別是當前頁數和每頁顯示的總記錄數,一般在service冷處理 PageHelper.startPage(pageNum, pageSize); CommonResponse<List<Checktemplate>> response = new CommonResponse<>(ResponseResultEnum.SUCCESS, "查詢檢查模板主要資訊成功"); try { response = checkTemplateService.queryCheckTemplate(); } catch (Exception e) { response.setStatus(ResponseResultEnum.EXCEPTION); response.setException(ExceptionEnum.EXCEPTION_SYS); response.setMessage("查詢檢查模板主資訊失敗"); logger.error("查詢檢查模板主要資訊失敗|{}", e.getMessage(), e); return response; } return response; }
常用swaggerui註解:
- @Api()用於類;
表示標識這個類是swagger的資源
- @ApiOperation()用於方法;
表示一個http請求的操作
- @ApiParam()用於方法,引數,欄位說明;
表示對引數的新增元資料(說明或是否必填等)
- @ApiModel()用於類
表示對類進行說明,用於引數用實體類接收
- @ApiModelProperty()用於方法,欄位
表示對model屬性的說明或者資料操作更改
- @ApiIgnore()用於類,方法,方法引數
表示這個方法或者類被忽略
- @ApiImplicitParam() 用於方法
表示單獨的請求引數
- @ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam
二、問題及解決方案
(1)本地訪問時404
原因:springboot配置檔案中設定了資源包路徑:spring.resources.staticLocations=classpath:/res/
將此配置註釋即可。若仍舊訪問404,手動新增資源載入類:
package com.janis;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
//@Configuration
//@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
(2)訪問成功,但是頁面無內容
原因:瀏覽器版本問題,瀏覽器不相容。更換瀏覽器或者升級瀏覽器即可。目前發現IE8不相容
相關推薦
SpringBoot整合Swaggerui及問題解決
目前在做前後臺分離專案的後臺介面部分,故在springboot中引入了swaggerui來做restful介面測試。本文首先描述springboot整合swaggerui的過程,其次,講述本人在整合過程中遇到的問題及解決方案。一、springboot整合swaggerui(1
springboot整合mybatis及封裝curd操作-配置文件
enabled () init tps github mys tde oos maven 1 配置文件 application.properties #server server.port=8090 server.address=127.0.0.1 server.ses
SpringBoot整合MyBatis及Thymeleaf
配置文件 target char 使用 otp head batis dmi 分離 http://www.cnblogs.com/ludashi/archive/2017/05/08/6669133.html 上篇博客我們聊了《JavaEE開發之SpringBoot工程的
SpringBoot 整合mybatis 及使用generator,pageHelper外掛
SpringBoot 整合mybatis 及使用generator,pageHelper外掛 一.新建springBoot專案 next next next finish 二.pom檔案配置 <?xml version="1.0" encoding="UTF-8
2018 - SpringBoot 整合 Mybatis 及 Freemarker 的使用
一、application.yml 配置如下 注:因為格式或編碼問題,如果出現以下錯誤 ERROR : Failed to load property source from location 'classpath:/application.yml' 1. 把註釋刪除 &
2018 - SpringBoot 整合 Mybatis 及 Freemarker 的使用(二)
一、application.yml 配置如下 注:因為格式或編碼問題,如果出現以下錯誤 ERROR : Failed to load property source from location 'classpath:/application.yml' 1. 把註釋刪除 &
SpringBoot整合SwaggerUI自動生成介面文件
SpringBoot整合SwaggerUI自動生成介面文件 一、在pom.xml檔案裡新增SpringBoot的引用配置,程式碼如下: <dependency> <groupId>io.springfox</gro
springboot整合mybatis及mybatis generator工具使用
前言 mybatis是一個半自動化的orm框架,所謂半自動化就是mybaitis只支援資料庫查出的資料對映到pojo類上,而實體到資料庫的對映需要自己編寫sql語句實現,相較於hibernate這種完全自動化的框架我更喜歡mybatis,mybatis非常靈活,
SpringBoot整合redis及簡單工具類使用
本篇文章只是簡單的SpringBoot整合redis及redis的簡單工具類 1.匯入pom檔案 <!--redis--> <dependency> <groupId>org.springframework.boot</gr
SpringBoot 整合 JWT 驗證+解決域名問題
什麼是JWT JSON Web Token(JWT)是一個開放的標準(RFC 7519),它定義了一個緊湊且自包含的方式,用於在各方之間以JSON物件安全地傳輸資訊。這些資訊可以通過數字簽名進行驗證和信任。可以使用祕密(使用HMAC演算法)或使用RSA的公鑰/私鑰對來對JWT
SpringBoot 整合 Mybatis 及 Freemarker 的使用
一、application.yml 配置如下 注:因為格式或編碼問題,所以就把註釋去掉了 server: #servlet: #context-path: /springboot p
springboot系列十三、springboot整合swaggerUI
一、Swagger介紹 Swagger能成為最受歡迎的REST APIs文件生成工具之一,有以下幾個原因: Swagger 可以生成一個具有互動性的API控制檯,開發者可以用來快速學習和嘗試API。 Swagger 可以生成客戶端SDK程式碼用於各種不同的平臺上的實現。 Swagger 檔案
Springboot整合mybatis及分頁查詢、定時任務)
整了一整天,看了一位前輩的部落格,在此基礎上加上本人的理解及創作,哪位前輩忘記了,望諒解!不多說,直接上程式碼。 以上是專案的整體結構,下面是pom.xml檔案資訊:<project xmlns="http://maven.apache.org/POM/4.0.0"
springboot整合thymeleaf及常用標籤的使用方法
請結合springboot學習教程專案github地址 https://github.com/heng1234/spring-boot_one來理解 pom.xml <!-- 引入 thymeleaf 模板依賴 --> <dependency&g
springboot 整合websocket 以及解決tomcat叢集環境websocket共享問題
解決方案:使用redis訊息釋出訂閱解決多個tomcat應用伺服器下,連線不共享問題;具體如下 @Configuration public class WebSocketConfig { //TODEO如果用外接tomcat,要註釋掉以下程式碼,否則啟動專案會
springboot整合mybatis-plus(解決引用jar包配置類不起作用問題)
新增依賴 <dependency> <groupId>org.springframework.boot</groupId> <
Springboot整合redis及redis叢集
1、maven依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis
SpringBoot整合Mybatis及分頁外掛pageHelper和事務
spring事務分類: 1.宣告事務 2.程式設計事務 spring事務原理:AOP技術 環繞通知進行攔截 使用spring事務的注意事項:不要Try。因為要將異常丟擲給外層 Springboot預設整合事務,只要在方法上加上@Transactional註解 pom.xml
idea中springboot整合mybatis找不到mapper介面的原因及解決方法
整合網上以及開發時遇到的錯誤原因總結:路徑不對 1.maper.xml名稱空間不對應mapper介面的位置 2.xml方法名未對應上mappe接口裡面的方法名 、 3.mapper檔案未注入成功,也就是位置掃描錯誤。 4.如果都檢查完了,一定要檢查編譯後的檔
CAS5.3伺服器搭建及SpringBoot整合CAS解決分散式系統安全
單點登入(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。 當我們使用SpringCloud搭建分散式系統後,這些子系統是分別部署