国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

論SSH框架 —— 一個獅子座程序員的大言不慚!

2019-11-14 22:57:31
字體:
供稿:網(wǎng)友
論SSH框架 —— 一個獅子座程序員的大言不慚!論SSH框架 —— 一個獅子座程序員的大言不慚!SSH和Leopard深入對比

  記得很多很多年前,在java Web開發(fā)的世界里,SSH(Struts、SPRing、Hibernate、)這個框架是很火的?火到什么程度呢?在當時你如果說不懂SSH,你都不好意思說你是搞Java Web發(fā)的。現(xiàn)在回想起來,這個框架實在是太過扯蛋!而且扯得蛋很疼!導(dǎo)致至今仍有很多很多Java Web開發(fā)者前撲后繼的去學(xué)習這個架構(gòu)!

  我是一個寫了很多年程序的老程序員,我對這個現(xiàn)象感到很痛心!僅僅是因為我們的程序員同學(xué)都太過依賴舊的技術(shù),不愿與時俱進!

  下面我們來分析SSH為什么會這么流行?又怎么樣來改變這個現(xiàn)狀?

  Struts是MVC模式web框架公認的標準,在Spring還沒有出來的時候。Struts已經(jīng)很流行了,大大小小的web項目都使用struts進行開發(fā),這為后來的SSH框架墊定了穩(wěn)固的江山。

  后來,Spring出來了,他宣傳的是依懶注入和控制反轉(zhuǎn),把主要精力放到了如何在模塊之間解耦上去了。很多框架師也確實認同Rod Johnson,紛紛也將Spring引入到了項目中去。而Hibernate在持久化上也確實做到了很成功,因此桃園結(jié)義就此拉開!SSH一個強大的框架,就此誕生!Struts 負責MVC,Spring負責解耦,Hibernate負責數(shù)據(jù)持久化,分工明確!各自在自己的地旁上呼風喚雨!

  SSH這個框架,看似很好?但我卻認為很復(fù)雜。為什么一個人能干好的活,非要交給三個人干呢?這里也許是包含各種歷史原因,也許是因為太多的程序員的惰性思維。不管怎么樣,我認為程序員應(yīng)該創(chuàng)新,應(yīng)該與時具進!

  直到有一天,我看到了一個很牛逼的網(wǎng)站http://leopard.io/。作者開發(fā)了一個叫作Leopard的框架。這個框架基于Spring開發(fā),在Spring MVC、Spring JDBC上做了深入的封裝,將困擾眾多WEB開發(fā)者的問題,一一化解!

  我深入研究了這個框架,并對SSH和Leopard進行了一個深入的對比:

  SSH,我就用一句話來描述:使用了各框架之所長!

  Leopard,我想深入列舉一下:

WEB MVC功能

  1、使用Spring MVC框架,在原有功能上封裝了多個數(shù)據(jù)視圖。比如有返回Json數(shù)據(jù)的視圖、返回文本數(shù)據(jù)的視圖、返回分頁數(shù)據(jù)的視圖、返回ftl數(shù)據(jù)的視圖等等。   2、實現(xiàn)自定義關(guān)鍵參數(shù)(參見我的博客http://wsppkdc.VEvb.com/)。  3、對int、boolean、long型對象為空值時進行了轉(zhuǎn)換。  4、實現(xiàn)智能登錄驗證掃描。  5、內(nèi)置自定義攔截器,可實現(xiàn)自定義功能。  6、實現(xiàn)分布式session,開放自如。  7、實現(xiàn)自定義登錄驗證組件,開放驗證接口支持自定義實現(xiàn)登錄驗證及登錄界面。  8、實現(xiàn)防并發(fā)組件,可以在指定時間限制接口訪問次數(shù)。  9、實現(xiàn)驗證碼組件,可支持多組驗證碼分組驗證。  10、實現(xiàn)方法耗時監(jiān)控、數(shù)據(jù)源(MySQL、Redis、Memcached等)請求統(tǒng)計。  11、實現(xiàn)CSRF、XSS安全漏洞防范。

  以上web功能,開箱即用。不想用的時候,關(guān)閉即可。

持久化功能

  1、封裝Spring JDBC實現(xiàn),Hibernate號稱的方便牽移,我想已經(jīng)毫無用武之地了。因為Leopard不僅僅在實現(xiàn)上做了工作,還在設(shè)計上給了建議。建議所有數(shù)據(jù)庫操作均使用單表操作(如果你認為做不到,可以直接找作者幫忙,而且還是免費的,這使我對作者肅然起敬!!!)。  2、封裝了Redis緩存實現(xiàn),Hibernate的緩存,又被打趴了。  3、對JDBC、Redis配置連接池,僅僅一行標簽搞定!

解耦功能

  1、依然采用Spring的解耦功能。

其他組件

  1、實現(xiàn)了Jetty熱部署。這個是相當牛擦的,啟動web應(yīng)用。只要運行一個JettyTest類即可。而且支持熱部署,改完代碼不需要重啟。  2、智能配置mvc resources,為了提高靜態(tài)文件的訪問速度。Leopard會自動將靜態(tài)文件轉(zhuǎn)換為Spring 的Resource,請求時不需要再進入Controller。  3、自定義標簽,簡化xml編寫。  4、內(nèi)置Tson數(shù)據(jù)結(jié)構(gòu)簡化Model構(gòu)造,使單元測試編寫變得相當簡單。  5、開放可擴展接口。  6、制定開發(fā)規(guī)范,簡化項目交結(jié)。  7、智能化日志配置。  8、….

  太多太多的新玩藝了,還是自己上http://leopard.io/上去看吧。作者已經(jīng)將源碼、示例代碼全部開源出來了。我認為此框架值得學(xué)習,也許它將帶來另一個春天!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 和顺县| 固始县| 绍兴市| 南京市| 峨眉山市| 青阳县| 石楼县| 纳雍县| 铁岭市| 原阳县| 会宁县| 阳朔县| 容城县| 孝义市| 阿拉善盟| 灵川县| 垣曲县| 天全县| 自治县| 泸溪县| 伊春市| 永善县| 阳信县| 巴林右旗| 册亨县| 康马县| 三江| 平泉县| 临清市| 安乡县| 巴塘县| 江门市| 于都县| 建湖县| 黎城县| 莱芜市| 固原市| 通许县| 锦屏县| 宜兴市| 咸丰县|