|
@@ -1,76 +0,0 @@
|
|
|
-//package com.gxzc.zen.common.config.json
|
|
|
-//
|
|
|
-//import com.gxzc.zen.common.config.json.annotation.ZenFilter
|
|
|
-//import org.springframework.beans.factory.config.BeanPostProcessor
|
|
|
-//import org.springframework.core.MethodParameter
|
|
|
-//import org.springframework.http.MediaType
|
|
|
-//import org.springframework.http.server.ServletServerHttpRequest
|
|
|
-//import org.springframework.http.server.ServletServerHttpResponse
|
|
|
-//import org.springframework.stereotype.Component
|
|
|
-//import org.springframework.web.context.request.NativeWebRequest
|
|
|
-//import org.springframework.web.method.support.HandlerMethodReturnValueHandler
|
|
|
-//import org.springframework.web.method.support.ModelAndViewContainer
|
|
|
-//import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
|
|
|
-//import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
|
|
|
-//import javax.servlet.http.HttpServletRequest
|
|
|
-//import javax.servlet.http.HttpServletResponse
|
|
|
-//
|
|
|
-//
|
|
|
-///**
|
|
|
-// * 自定义Json返回值序列化
|
|
|
-// * @author NorthLan
|
|
|
-// * @date 2018/3/12
|
|
|
-// * @url https://noahlan.com
|
|
|
-// */
|
|
|
-//@Component
|
|
|
-//class ZenJsonResultHandler : HandlerMethodReturnValueHandler, BeanPostProcessor {
|
|
|
-// var advices = mutableListOf<ResponseBodyAdvice<Any>>()
|
|
|
-//
|
|
|
-// override fun supportsReturnType(returnType: MethodParameter): Boolean {
|
|
|
-// return returnType.getMethodAnnotation(ZenFilter::class.java) != null
|
|
|
-// }
|
|
|
-//
|
|
|
-// override fun handleReturnValue(returnValue: Any, returnType: MethodParameter, mavContainer: ModelAndViewContainer, webRequest: NativeWebRequest) {
|
|
|
-// mavContainer.isRequestHandled = true
|
|
|
-//
|
|
|
-// var newReturnValue: Any = returnValue
|
|
|
-// advices.forEach {
|
|
|
-// if (it.supports(returnType, null)) {
|
|
|
-// newReturnValue = it.beforeBodyWrite(returnValue, returnType, MediaType.APPLICATION_JSON_UTF8, null,
|
|
|
-// ServletServerHttpRequest(webRequest.getNativeRequest(HttpServletRequest::class.java)),
|
|
|
-// ServletServerHttpResponse(webRequest.getNativeResponse(HttpServletResponse::class.java)))
|
|
|
-// }
|
|
|
-// }
|
|
|
-// val response = webRequest.getNativeResponse(HttpServletResponse::class.java)
|
|
|
-// val annotations = returnType.methodAnnotations
|
|
|
-// val jsonSerializer = ZenJsonSerializer()
|
|
|
-// annotations.forEach {
|
|
|
-// if (it is ZenFilter) {
|
|
|
-// jsonSerializer.filter(it)
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// response.contentType = MediaType.APPLICATION_JSON_UTF8_VALUE
|
|
|
-// response.writer.write(jsonSerializer.toJson(newReturnValue))
|
|
|
-// }
|
|
|
-//
|
|
|
-// override fun postProcessBeforeInitialization(bean: Any, beanName: String): Any {
|
|
|
-// return bean
|
|
|
-// }
|
|
|
-//
|
|
|
-// @Suppress("UNCHECKED_CAST")
|
|
|
-// override fun postProcessAfterInitialization(bean: Any, beanName: String): Any {
|
|
|
-// if (bean is ResponseBodyAdvice<*>) {
|
|
|
-// advices.add(bean as ResponseBodyAdvice<Any>)
|
|
|
-// } else if (bean is RequestMappingHandlerAdapter) {
|
|
|
-// val handlers = ArrayList(bean.returnValueHandlers)
|
|
|
-// val handler = handlers.firstOrNull { it is ZenJsonResultHandler }?.let { it as ZenJsonResultHandler }
|
|
|
-// handler?.let {
|
|
|
-// handlers.remove(it)
|
|
|
-// handlers.add(0, it)
|
|
|
-// bean.returnValueHandlers = handlers // 修改排序到第一位
|
|
|
-// }
|
|
|
-// }
|
|
|
-// return bean
|
|
|
-// }
|
|
|
-//}
|