1. 程式人生 > >spring請求資料與返回資料日誌記錄

spring請求資料與返回資料日誌記錄

<aop:aspectj-autoproxy/>
<bean class = "com.liyang.robust.LogAspect"/>



@Aspect
public class LogAspect {
	
  private static final Logger logger = Logger.getLogger(LogAspect.class);

  @Around("execution(* com.liyang.robust..*.*(..))")
  public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
		long  startTimeMillis = System.currentTimeMillis();
	    RequestAttributes ra = RequestContextHolder.getRequestAttributes() ;
	    ServletRequestAttributes sra = (ServletRequestAttributes)ra ;
	    HttpServletRequest request = sra.getRequest() ;
	    Map<String , String[]> inputParamMap = request.getParameterMap() ;
	    String requestPath = request.getRequestURI() ;
	    Object result = pjp.proceed() ; 
	    long endTimeMillis = System.currentTimeMillis();
	    logger.info("\n"
	        +"Begin:"  + "\n"
	        +"Url:" + requestPath  + "\n"
	        +"RequestParams:" + JSONObject.toJSON(inputParamMap) + "\n" 
	        +"ResponseResults:"+ JSONObject.toJSON(result)  + "\n" 
	        +"Cost:" + (endTimeMillis - startTimeMillis) + " ms " + "\n"
	        +"End" + "\n") ;
	    return result ;
  }

}


<2016-11-01 15:20:46:308 [INFO]>[XX] -: 
Begin:
Url:/XX/X/X/XXXXX
RequestParams:{"x":["x"],"x":["x"],"x":["x"]}
ResponseResults:{"totalNumber":0,"numberPerPage":0,"errorCode":"DB_ERROR","currentPage":0,"callStatus":"FAILED","totalPage":0}
Cost:706 ms 
End
private  String send(String url , Map<String , Object> params) throws Exception{
		HttpClient httpClient = new HttpClient();
		PostMethod postMethod = new PostMethod(url);
		postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
		NameValuePair[] data = new NameValuePair[params.size()] ;
		int idx = 0 ;
		for(Map.Entry<String , Object> param : params.entrySet()){
			data[idx++] = new NameValuePair(param.getKey() , param.getValue() == null ? "" :  param.getValue().toString() ) ; 
		}
		postMethod.setRequestBody(data);
		int statusCode = -1 ;
		try {
			statusCode = httpClient.executeMethod(postMethod);
		} catch (HttpException e) {
			throw new Exception("can not connet SP") ; 
		} catch (IOException e1) {
			throw new Exception("can not connet SP") ; 
		}
		String returnStr = null ;
		if(statusCode==200){
			try {
				returnStr = postMethod.getResponseBodyAsString()  ;
			} catch (IOException e) {
				throw e ;
			}
		}
		else {
			 throw new Exception("can not connet SP") ; 
		}
		return returnStr  ; 
	}


相關推薦

spring請求資料返回資料日誌記錄

<aop:aspectj-autoproxy/> <bean class = "com.liyang.robust.LogAspect"/> @Aspect public

filter 實現 請求資料返回資料的加解密

因為專案需要,需要對請求資料資料和返回資料統一做加解密的處理。本文重點介紹一下,在過濾器中修改請求資料和返回資料,不詳細介紹加解密的實現。 原理 如上圖所示,輸出流並不像我們想象的那樣,必經過濾器,然後返回給客戶端,這樣就會有一個問題,當我們在過濾器

【SpringBoot】Http請求統一異常(返回資料)處理單元測試

對返回資料格式的統一 首先規定一下錯誤的輸出格式: { "code": 1, "msg": "提示", "data": null } data是一個物件 首先定義一個http請求返回的類 package cn.

ajax請求後臺介面資料返回值處理js寫法

ajax的程式碼,用的是jquery的 ajax: $.ajax({ url: "/test.php",//後臺提供的介面 type: "post",

Spring Boot統一格式返回資料的幾種方式

  有些時候呢,我們需要統一格式進行返回,之前可能會定義某個實體類在每個方法的響應都是用這個實體類然後包含響應值,其實spring呢,可以有挺多種無侵入的統一包裝方法。   第一種: @RestControllerAdvice public class ResponseHandler impleme

plsql idea 請求後沒有返回資料

今天使用plsql + idea 跑專案的時候,出現了一個問題 現象如下:有時候,向後臺傳送一個請求,這些請求,不會返回,但是頁面有報錯,就是一直在那裡待著,什麼事都沒發生 但是,就是沒有返回資料, 出現這種問題,我大概也知道可能是資料被鎖定,需要排隊,因為用的公司的遠端資料庫可能出現這

用HttpURLConnection 在Java後臺傳送請求並接收返回資料

我們通常做Java後臺介面,是讓前端訪問的,讓前端獲取資料或者做增刪改查,但是有時候,我們做的Java介面是讓其他系統的Java後臺呼叫的,讓其他系統從我們這個系統獲取資料或者做業務,這樣就要用到HttpURLConnection。本文寫得急,僅貼出樣例供參考。 (1)先寫

Spring boot專案設定返回資料為JSON固定格式

package com.test.config; import com.test.entity.ResponseTemplate; import org.springframework.core.MethodParameter; import org.springframework.http.MediaTy

spring 使用一般介面 返回資料null 的問題 解決

經過這兩天的折騰,終於把這個問題弄好了 :  一開始是使用spring 註解介面 返回不了資料 但是可以傳入資料  後面使用dubbo 也是一樣的遠端呼叫只能傳入資料 但是dubbo返回的資料接收不了  然後就一項一項的排查到底哪裡出錯了 ,最終發現原來是在spring

小程式部分機型請求200、返回資料為空

情景描述 ssm+mysql+jdk1.7+tomcat7+centos7 介面在網頁端正常使用,在小程式端部分機型(魅族、樂視)的部分介面失效 開發者工具除錯正常 真機上除錯請求報200,傳參成功

Spring框架,如何返回資料給檢視(jsp檔案)

Author:kagula Date: 2013-02-28 環境 [1]Tomcat 6.0.x [2]Spring (portlet)2.5.6 內容概要     以程式碼片段形式,舉例,如何把資料返回給檢視,並在檢視中顯示。這裡記一下,免得以後我又忘記了。 第一

java向webService介面(.net)傳送請求並接收返回資料

​ import java.io.BufferedReader; import java.io.IOException; i

sql效能優化第一篇之分頁資料count資料一次性獲取

相信大部分人都會遇到:在資料庫的資料量很大時,分頁需要幾秒鐘才會全部完成;包括分頁list的獲取和count的獲取。那我們完全可以將這兩步放到一次sql去執行獲取,減少一半的查詢時間。這裡get到sql_calc_found_rows和SELECT FOUND_ROWS()這兩個知識點。看程式碼

柵格資料向量資料

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

JQuery中使用select2外掛功能之自動完成下拉框動態載入匹配(本地資料遠端資料結合)

前言 最近專案中遇到一個問題:前端載入頁面的時候某些頁面載入速度很慢,耗時很久;有些頁面載入的飛快;因為上面所說的頁面都是由同一個程式動態生成的,利用多執行緒同步機制完成不同的前端頁面;因此當時就斷定不是程式的大問題;應該是處理資料部分存在問題;在chrome瀏覽器一測;還真的是大資料的問題

Echarts的使用,非同步載入資料返回資料型別

前臺js建立圖形 var option1={ title : { text: '學歷統計', x:'center', y:'center'

如何正確區分軟體成本估算中的邏輯資料物理資料

我們在進行軟體專案成本估算時經常容易混淆邏輯資料與物理資料。下面我們談談二者間的區別,以便我們正確的進行軟體成本估算。 邏輯資料一般是交易記錄、賬號資訊、客戶資訊等型別的資料。而物理資料是資料庫表、檢視;軟體的頁面;物理檔案(如DOC);登錄檔等。 一個物理檔案中可以包含多種邏輯資料

【輔助駕駛】KITTI鐳射資料影象資料的融合MATLAB實現[2]——KITTI資料集簡介

一、選擇KITTI的原因 我知道並有使用的資料集只有CityScapes和KITTI,其中CityScapes主要包括語義分割資料,沒有鐳射雷達資料,Github關於雷達影象融合開原始碼找到的也是KITTI的程式碼。 二、資料集簡介 1、網址:http://www.cvlibs.ne

【輔助駕駛】KITTI鐳射資料影象資料的融合MATLAB實現[4]——稠密深度圖實現

一、實現效果 二、思路與程式碼 由於鐳射點雲資料比較稀疏,直接將鐳射雷達資料對映到影象上,會有很多點不匹配,對於缺失的深度資訊,可以通過周圍點的深度的權重進行填充。 % Written by Muhammet Balcilar, France % All rights rese

Spring AOP面向切面程式設計之日誌記錄

實際專案中我們往往需要將一些重要的操作,以日誌的形式進行儲存,當機器宕機的時候,可以通過查詢日誌,定位出錯位置,方便恢復。 1:首先匯入spring支援的AOP架包 2:編寫將要進行切面工作的類 /** * */ package com.zhiyou100.aspect; i