1. 程式人生 > >springmvc+swagger2整合

springmvc+swagger2整合

整合的過程中遇到了一些問題,特此記錄。

問題一:springmvc中使用fastJsonHttpMessageConverter導致swagger2 解析json失敗若果換成mappingJackson2HttpMessageConverter就沒事兒了,但是感覺fastjson效能更好一些,所以就得硬著頭皮解決swagger2與fastjson相容的問題。網上有很多解決方案,無非就是說換最高版本的fastjson就好了,但是我換了最新版的fastjson還是不行,不知道為什麼,所以只能按照網上說的方法,來嘍,大概意思就是自定義一個fastjson轉換器。上程式碼

FastJsonHttpMessageConverterEx

package core.swagger;

import springfox.documentation.spring.web.json.Json;

import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

public class FastJsonHttpMessageConverterEx extends FastJsonHttpMessageConverter {

    public FastJsonHttpMessageConverterEx() {
        super();
        this.getFastJsonConfig().getSerializeConfig().put(Json.class, SwaggerJsonSerializer.instance);
    }

}
SwaggerJsonSerializer
package core.swagger;

import java.io.IOException;
import java.lang.reflect.Type;

import springfox.documentation.spring.web.json.Json;

import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;

public class SwaggerJsonSerializer implements ObjectSerializer, ObjectDeserializer {

    public final static SwaggerJsonSerializer instance = new SwaggerJsonSerializer();

    @Override
    public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
        SerializeWriter out = serializer.getWriter();
        Json json = (Json) object;
        out.write(json.value());
    }

    @Override
    public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
        return null;
    }

    @Override
    public int getFastMatchToken() {
        return 0;
    }

}
springmvc配置檔案
<mvc:annotation-driven>
		<mvc:message-converters register-defaults="true">
			<bean id="fastJsonHttpMessageConverter" class="core.swagger.FastJsonHttpMessageConverterEx">
				<property name="supportedMediaTypes">
					<list>
						<value>text/plain;charset=UTF-8</value>
						<value>text/html;charset=UTF-8</value>
						<value>application/json;charset=UTF-8</value>
					</list>
				</property>
				<property name="features">
					<array value-type="com.alibaba.fastjson.serializer.SerializerFeature">
						<value>DisableCircularReferenceDetect</value>
						<value>WriteMapNullValue</value>
						<value>WriteNullNumberAsZero</value>
						<value>WriteNullStringAsEmpty</value>
						<value>WriteNullListAsEmpty</value>
						<value>WriteNullBooleanAsFalse</value>
					</array>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

成功解決問題

問題二:用springmvc寫了一個登入攔截器,swagger2的所有請求都攔截了,由於swagger2是引入的jar包,所以跟了下程式碼,配置了一下攔截器

<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**" />
			<mvc:exclude-mapping path="/webjars/**" />
			<mvc:exclude-mapping path="/swagger-resources/**" />
			<mvc:exclude-mapping path="/v2/**" />
			<bean class="interceptor.UserSecurityInterceptor">
				<property name="excludedUrls">
					<list>
						<value>/tbuser/noUser</value>
						<value>/tbuser/login</value>
						<value>/swagger-ui.html</value>
					</list>
				</property>
			</bean>
		</mvc:interceptor>
	</mvc:interceptors>
成功解決問題

相關推薦

springmvc+swagger2整合

整合的過程中遇到了一些問題,特此記錄。 問題一:springmvc中使用fastJsonHttpMessageConverter導致swagger2 解析json失敗若果換成mappingJackson2HttpMessageConverter就沒事兒了,但是感覺fastj

SpringMVC與Springfox(Swagger2)整合詳解以及涉及的問題處理

        Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。總體目標是使客戶端和檔案系統作為伺服器以同樣的速度來更新。檔案的方法,引數和模型緊密整合到伺服器端的程式碼,允許API來始終保持同步

springmvc 與 springfox-swagger2整合

一、pom.xml引入基於maven的swagger依賴      <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-sw

swagger2整合springMvc生成線上API

在現在的開發中,前後端分離開發越來越明顯,也越來越重要,但是後臺開發人員在開發完介面之後給前端人員或者APP端呼叫,而前端人員或者APP端對介面的作用以及介面中的引數往往不懂,這樣雙方不得不多次溝通交流,很浪費時間。於是就需要一箇中間的工具來無縫連線後臺與前端。 這個中間工

springmvcswagger2整合

由於springboot整合swagger2非常簡單,現在springmvc在實際的專案當中非常多,所以有必要說一下springmvc和swagger2的整合,網上參照的資料非常多,大致都說的是一樣的,多次測試才成功;swagger優點:一個檔案就是一個文件只針對API,而不

Spring-SpringMVC-Mybatis整合的步驟

read oot exceptio img gda gif force system 緩存 1.導入jar包   1.1 spring面向切面jar包     com.springsource.net.sf.cglib-2.2.0.jar     com.spring

Spring4+SpringMVC+Hibernate4整合入門與實例

type 解析 .class -m .config ise pri generated driver 配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:

SSM springmvc mybatis 整合 bootstrap maven shiro druid ehcache SSM框架源碼

微信開發 springmvc mybatis java 公眾平臺 官網 http://www.fhadmin.org/ A 調用攝像頭拍照,自定義裁剪編輯頭像,頭像圖片色度調節 B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速開發利器)+快速表單構建器 fre

spring+springmvc+mybatis整合

聲明 參數 stdout 加載 strong 相關 version pts check 搭建ssm框架,我們要分幾步進行,把每個配置文件分開寫,這樣看上去一目了然,有利於後期的修改維護,對自己也可以記請每一步的內容和步驟,方便記憶 一.spring-dao.xml 二.jd

Spring+SpringMVC+hibernate整合開發

exp mvc margin tar e30 fio ilb fc14 h264 被瘟謎謫逼戲溫次蔡蒙磊疤回http://shequ.docin.com/vpe32249 空私錘氖園掠覆痔瓜傅殖http://jz.docin.com/gqsn83067 境噬栽品新嗚趙德

SpringMVC學習(四)——Spring、MyBatis和SpringMVC整合

creat .com www. dispatch cte scanner scan fault framework 本文我再來講SpringMVC和MyBatis整合開發的方法,這樣的話,Spring、MyBatis和SpringMVC三大框架的整合開發我們就學會了。這裏我

springmvc+dubbo整合學習

mysql數據庫 rac 讀寫分離 watermark 雙重驗證 辦公 客戶端 服務端 一個 框架簡介--主要定位於互聯網企業架構,已內置企業信息化系統的基礎功能和高效的代碼生成工具,包括:系統權限組件、數據權限組件、數據字典組件、核心工具 組件、視圖操作組件、工作流組件組

springMVC swagger2

extc ces doc opera .com tde 需要 .get 配置文件 參考地址:https://www.cnblogs.com/exmyth/p/7183753.html 1. maven 依賴 <dependency> <g

Spring4+SpringMVC+MyBatis整合思路

容器 getc lte nal 自定義 object eof supported instance 本文主要簡單講解框架整合的思路。1、Spring框架的搭建 這個很簡單,只需要web容器中註冊org.springframework.web.context.ContextL

Spring Boot之Swagger2整合

一、Swagger2簡單介紹   Swagger2,它可以輕鬆的整合到Spring Boot中,並與Spring MVC程式配合組織出強大RESTful API文件。它既可以減少我們建立文件的工作量,同時說明內容又整合入實現程式碼中,讓維護文件和修改程式碼整合為一體,可以讓我們在修改程式碼邏輯的同時方便的修

springboot+swagger2整合

新增pom依賴 <!--swagger2 start--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</

Swagger2整合springBoot,自動生成API介面文件

Swagger2整合springBoot 首先匯入jar包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swa

基於swagger進行介面文件的編寫 Maven + SpringMVC專案整合Swagger

0. 前言 近期忙於和各個銀行的代收介面聯調,根據遇到的問題,對之前編寫的介面進行了修改,需求收集和設計介面時想到了方方面面,生產環境下還是會遇到意想不到的問題,好在基本的執行邏輯已確定,因此只是對介面進行了一些微調,但是收錢無小事,之前在程式碼編寫時對引數進行了很多的校驗,程式碼修改之後一個引數的對不上都

springmvc實現整合mybatis實現簡單的讀取資料

  我這裡使用的是Mapper動態代理開發,另外使用了逆向工程,為我建立實體類和mapper介面呢mapper對映檔案 1,配置web.xml,配置spring監聽器,springmvc的servlet和對請求的攔截 2,配置springmvc.xml,開啟註解,配置包掃描,配置檢視解析器

spring,springmvc,mybatits整合例項--後臺分頁查詢

spring,springmvc,mybatits整合例項–後臺分頁查詢 這裡給出一個ssm整合後臺分頁查詢的例項。 後臺分頁使用了pageHelp這個後臺分頁,前端分頁按鈕使用jPaginate這個js外掛。 pageHelp:一個大牛寫的後端資料庫分頁的jar包: htt