Java Web 工作技巧總結(jié) 16.8

摘要: 原創(chuàng)出處:www.bysocket.com 泥瓦匠BYSocket 希望轉(zhuǎn)載吨拍,保留摘要枣宫,謝謝婆誓!

四時不謝之蘭,百節(jié)長青之竹也颤,萬古不敗之石洋幻,千秋不變之人。

1. AOP – LOG

項(xiàng)目中翅娶,一個請求過來文留,一個響應(yīng)回去好唯。


經(jīng)常我們需要記錄請求過來的對應(yīng)的 類,方法名燥翅,請求參數(shù)和IP等一些信息渠啊,還有響應(yīng)出去的,如果是 JSON 結(jié)果集的話权旷。比如現(xiàn)在一般暴露給前端(前后端分離)替蛉,或者其他模塊基本走 Restful 接口。那怎么優(yōu)雅的去記錄這些東西呢拄氯?

beta 1.0

@Path("user/get")

publicListResult getUser(@BeanParamGetUserParam getUserParam){

LOGGER.info(getUserParam.toString());

ListResult userList = userService.getUserList(getUserParam);

LOGGER.info(userList.toString());

returnuserList;

}

同樣躲查,硬編碼加入了兩句打印的代碼,其實(shí)這個沒這么簡單译柏×椭螅可能日志需要輸出到日志平臺,可能獲取IP或者請求來源的一些信息鄙麦。那怎么升級會優(yōu)雅呢典唇?Annotation + AOP可能不錯哦!

realease 1.0

@Path("user/get")

@ApiAdvice

publicListResult getUser(@BeanParamGetUserParam getUserParam){

ListResult userList = userService.getUserList(getUserParam);

returnuserList;

}

ApiAvice 的實(shí)現(xiàn)原理是基于 Spring AOP 和 SPring 自定義注解完成胯府。具體這篇文章寫得差不多:http://www.xdemo.org/springmvc-aop-annotation/

2. 出介衔、入?yún)⒎庋b

上一點(diǎn)說到了,請求入?yún)⒑晚憫?yīng)出參骂因。

入?yún)⑻峁┮粋€ BaseParam炎咖,包含了 IP ,請求來源機(jī)器,機(jī)型等各種寒波。PagerParam 繼承 BaseParam 類乘盼,增加了分頁相關(guān)的參數(shù)。比如俄烁,用戶的參數(shù) UserGetPagerParam..

出參提供一個 BaseResult绸栅,包含返回碼,返回信息及請求 IP等页屠。PlainResult 單個結(jié)果集粹胯,ListResult 列表結(jié)果集,MapResult…

同樣卷中,兩者需要實(shí)現(xiàn)序列化矛双。序列化的可以看看這個文章?http://www.infoq.com/cn/articles/serialization-and-deserialization

3. LIMIT

在處理線上問題的時候渊抽,有時候會有臟數(shù)據(jù)要進(jìn)行處理蟆豫。自然 DDL 操作,需要通過審批什么的懒闷。這里就不說了十减。主要在 UPDATE 操作的時候栈幸,注意 SQL 的寫法。防止一條 SQL 誤操作了其他正確的數(shù)據(jù)帮辟,加個 LIMIT 限制語句速址。例如

UPDATE user SET name="BYSocket" WHERE name="Jeff" LIMIT 1.

http://database.51cto.com/art/201005/200401.htm

4.Guava EventBus

Guava EventBus 是基于事件處理機(jī)制,是設(shè)計模式中的生產(chǎn)消費(fèi)模式的實(shí)現(xiàn)由驹。使用的場景:多半在異步的場景上芍锚。但是基于 JVM 內(nèi)存上實(shí)現(xiàn)的,通俗的說是單機(jī)模式蔓榄。需要評估好并炮,這個異步是否是非常快速可以處理完畢甥郑。具體使用見

http://www.cnblogs.com/peida/p/EventBus.html

5.GC常用分析命令

這個總結(jié)來自有次 FullGC 特別多逃魄,OOM 的場景。然后是這樣操作分析的:

jps -lvm // 查看JVM進(jìn)程中的狀態(tài)澜搅,并得知 JVM 的具體配置

jstat -gcutil {pid} 1000 // 每秒鐘打印 GC 信息伍俘,可以看下 full GC,各種區(qū)的 實(shí)時信息

jmap -F -heap {pid} // 查看內(nèi)存對象信息

主要是

jmap -dump:format=b,file=dump.bin {pid} // 導(dǎo)出內(nèi)存對象 dump 文件

然后分析工具很多勉躺,這里用IBM HeapAnalyzer 具體使用看:?http://blog.csdn.net/alexbxp/article/details/6756411

JVM 相關(guān)也看看

JVM 參數(shù)配置:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html

JVM 監(jiān)控命令:https://my.oschina.net/feichexia/blog/196575

如以上文章或鏈接對你有幫助的話癌瘾,別忘了在文章結(jié)尾處評論哈~ 你也可以點(diǎn)擊頁面右邊“分享”懸浮按鈕哦,讓更多的人閱讀這篇文章饵溅。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柳弄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子概说,更是在濱河造成了極大的恐慌碧注,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件糖赔,死亡現(xiàn)場離奇詭異萍丐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)放典,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門逝变,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奋构,你說我怎么就攤上這事壳影。” “怎么了弥臼?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵宴咧,是天一觀的道長。 經(jīng)常有香客問我径缅,道長掺栅,這世上最難降的妖魔是什么烙肺? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮氧卧,結(jié)果婚禮上桃笙,老公的妹妹穿的比我還像新娘。我一直安慰自己沙绝,他們只是感情好搏明,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著闪檬,像睡著了一般熏瞄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谬以,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天强饮,我揣著相機(jī)與錄音,去河邊找鬼为黎。 笑死邮丰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铭乾。 我是一名探鬼主播剪廉,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼炕檩!你這毒婦竟也來了斗蒋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤笛质,失蹤者是張志新(化名)和其女友劉穎泉沾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妇押,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡跷究,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了敲霍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俊马。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肩杈,靈堂內(nèi)的尸體忽然破棺而出柴我,到底是詐尸還是另有隱情,我是刑警寧澤扩然,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布艘儒,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏彤悔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一索守、第九天 我趴在偏房一處隱蔽的房頂上張望晕窑。 院中可真熱鬧,春花似錦卵佛、人聲如沸杨赤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疾牲。三九已至,卻和暖如春衙解,著一層夾襖步出監(jiān)牢的瞬間阳柔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工蚓峦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舌剂,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓暑椰,卻偏偏與公主長得像霍转,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子一汽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理避消,服務(wù)發(fā)現(xiàn),斷路器召夹,智...
    卡卡羅2017閱讀 134,712評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,312評論 25 707
  • 作者:一字馬胡 轉(zhuǎn)載標(biāo)志 【2017-11-12】 更新日志 日期更新內(nèi)容備注 2017-11-12新建文章初版 ...
    beneke閱讀 2,211評論 0 7
  • 一 岩喷、java虛擬機(jī)底層結(jié)構(gòu)詳解 我們知道,一個JVM實(shí)例的行為不光是它自己的事监憎,還涉及到它的子系統(tǒng)均驶、存儲區(qū)域、...
    葡萄喃喃囈語閱讀 1,488評論 0 4
  • 好像已經(jīng)過了愛哭的年齡枫虏,但再見時還是會熱淚盈眶妇穴,轉(zhuǎn)身時還是會淚流滿面,離開時還是會害怕很久不見隶债。 我很害怕離別腾它。可...
    是_不二閱讀 214評論 0 0