考試不努力,長大做IT,業界說學完SSH和SSM框架月薪過萬

非科班出身的我,獨自離開成都,來到魔都,憑著多年的運維經驗和少許開發案例,開啟了自學JAVA的道路。

SSH: struts:過去最流行的web MVC組件,apache項目組的一個開源項目。

struts2:現在非常流行的web MVC組件,是apache用struts1和webwork組合出來的產品。

兩者都是web MVC組件,利用這兩個組件都可以比較方便地開發web項目。不過struts1畢竟是老組件,在人們開發過程中,發現瞭如下問題:

struts1支持的表現層技術太單一,就只有jsp。不支持freemaker、velocity等當前比較流行的頁面技術。

2.struts1的Action與servlet API過於耦合,難以測試。這一點對於初學者來說可能沒什麼感覺,只有你用它開發過大型項目才知道。企業開發過程中,我們既要寫正式代碼,也要寫相應的測試代碼(即單元測試類,以此來保證代碼是符合我們預期的),如果正式代碼和servlet API耦合太深,會造成你的測試類難以編寫,一旦離開web服務器就會難以測試。

3.struts1屬於侵入式設計,也就是說,在你的代碼裡,除了你自己定義的類之外,還會包含struts1的API。倒不是說這樣的設計有多麼差,畢竟你用別人的組件,少不了會用到別人的API。只是這樣的設計會影響代碼的重用,如果需要重構,就會比較麻煩。

以上就是struts1的主要缺點,作為大改之後的struts2,對以上問題都做了改進:

1.struts2支持多種表現層技術,如freemaker、velocity都支持。

2.struts2中,Action不再與servlet API耦合(當然了,你希望在Action裡使用servlet API也行),便於編寫單元測試類。

3.Action不需要和struts2耦合,方便重用。

至於更詳細的區別,網上很多,有些還用列表形式列出來了,我這裡就不copy了。總之,雖然都叫struts,但是兩者差別挺大的,設計思想都不一樣。建議你運用這兩個組件各自實現同一個小項目,自然就明白差別了。

1,瀏覽器發送請求,例如請求 /mypage.action /report/myreport.pdf等。

2,核心控制器FilterDispatcher根據請求決定調用合適的Action。

3,WebWork的攔截器鏈自動對請求應用通用功能,例如 workflow,validation或文件下載和上傳。

4,回調Action的execute方法(其實可以是任意方法),該方法execute方法先獲得用戶的請求參數,然後執行某種數據操作,調用業務邏輯組組件來處理用戶請求。

5,Action的execute方法處理結果信息將被輸出發哦瀏覽器中,可以是html頁面,pdf還有jsp,Velocity,FreeMarker等技術模板。

spring: 1含義:為解決企業應用開發的複雜性而創建的開源框架,用基本的javaBean來完成EJB的事情 從大小和開銷方向spring都是輕量級的。

2,用途

①Ioc容器可以將對象之間的依賴關係交由spring管理,進行控制。

②AOP:方便進行面向切面的編程,是oop的擴展,想加什麼功能直接加。

③能夠集成各種優秀的框架,struts hibernate等。

因為spring繁瑣的配置,現已經被springboot所替代。

Hibernate

首先,Hibernate是數據持久層的一個輕量級框架。數據持久層的框架有很多比如:iBATIS,myBatis,Nhibernate,Siena等等。

並且Hibernate是一個開源的orm(object relations model)框架,提供了查詢獲取數據的方法,用面向對象的思想來操作數據庫,節省了我們開發處理數據的時間.

MyBatis

myBatis是支持普通 SQL 查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除 了幾乎所有的 JDBC 代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML 或註解用於配置和原始映射,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 對象)映射成數據庫中的記錄。

以上組合就是SSH和SSM了。原主與我同在,早日月薪過萬,自學的道路還很漫長啊。


分享到:


相關文章: