爲什麼大多數培訓機構還停留在只教ssh框架?

 學當然學的多會的多是好,但是我建議JSTL肯定是要學的,STRUTS瞭解下就好,不用花太多的時間了,除非公司項目有用到。
  放眼現在幾呼所有的軟件公司準備開發項目,基本上都是spring mvc了,springmvc已經能完全替代struts了,具體好處嘛可以自行百度。再加上以後的方向是走服務化,特別像微服務這一塊,spring boot基本上已經算得上是主流了,dubbo已經不再更新。包括最近面試的項目組,基本都是問會不會spring boot。
  現在如果公司還有struts2項目的話,基本上都不是新開發的項目.
  JSTL爲什麼一定要學呢,因爲現面向服務化的公司一般都是比較大,比較正規的公司,有多種系統,都是前後臺分離,通過服務調用,前臺用HTML(官方推薦)。但其實還有很多中小型的公司,還是用的jsp來做的系統,JSP的話,離不開jstl和EL表達式。
  當然不是叫你不學STRUTS,這個主要還是看所在的公司,所在的項目組的,如果想了解下,自已看看就行,主要心思還是花在spring框架搭的三層上吧,JSP,JSTL,EL表達式,肯定是不能不學的。因爲還是有可能會有很多公司是JSP開發的,它跟服務化是兩個方向,是基於容器上下文的,通過request,response請求交互數據。


最近聽一些朋友說,招聘面試的很多人簡歷都差不多,大部分人的簡歷上面都寫了熟悉ssh框架,我朋友就在吐槽,爲什麼這些人簡歷都差不多,並且都熟悉ssh框架?

後面他說, 可能這些人都是培訓機構出來的, 然後培訓機構對於完全外行的人都是簡單培訓了基本的java語法,然後介紹ssh的概念和簡單的使用,然後吹噓ssh多麼牛逼,然後再通過一個簡單的實戰項目,然後幫你做好簡歷,就算完成了培訓。

聽到他這一番話,多少心中有些觸動。我不是排斥ssh有什麼不好,ssh在很多年前是不錯的三個框架(現在struts已經沒落 ,spring很春天,hibernate不溫不火),只是覺得現在培訓機構還在教這個是有點過時了, 花費了學生的時間,並且出去可能也找不到工作(如果現在只是說會ssh,又沒有其他方面的知識,確實很難找工作)

爲什麼說ssh已經過時了?那就要首先知道ssh到底是什麼?

struts2:通俗的講就是爲了完成MVC模型中的C的功能,也就是編寫具體的業務邏輯的地方。

從他的設計上來看就是請求到了web容器,然後經過了一系列的過濾器,再通過請求FilterDispatcher詢問ActionMapper是否需要調用某個Action,如果要調用的話, 然後執行先前配置好的攔截器,就到了我們的具體邏輯,執行完之後,還會繼續執行對應的攔截器和過濾器邏輯,最後返回給調用方。

Spring: 通俗的講只是通過它的核心IOC來管理我們編寫邏輯中間的一些bean。我們通過IOC來減少耦合和簡化對象的操作。

Hibernate: 是對象關係映射框架,簡單的說,它就是對JDBC進行了非常輕量級的對象封裝,目的是讓操作數據庫像操作對象一樣簡單。

這個就是ssh三者最開始的目的,他們各司其職,在缺乏框架的年代,很好的配合着,以至於一直流傳了下來。

介紹完了ssh的本質,接下來介紹一下這三個組件現在的發展情況。

首先struts2框架最近爆出了很多高危漏洞,使的應用的安全有了很大程度的隱患。然後很多做法也不夠優雅,特別是JSR-311標準出臺之後,隨着Restful方式的流程程度普及開來,struts2越來越被大家所拋棄,雖然struts2也加入了一些plugin來進行支持REST,但是還是過於繁瑣。所以導致了現在struts2的沒落。

然後spring以IOC爲核心,然後進行大力擴展,先後推出了SpringMVC來完成邏輯層的編寫邏輯,現在SpringMVC基本已經完成了替代struts2的工作(一些很老的項目可能沒有進行改造)。然後在SpringMVC大獲成功之後,基於SpringMVC和web容器,把他們兩者進行結合,推出了SpringBoot,經過幾年的發展和醞釀,現在後端基本被Spring系列所統一。所以現在要我來講,後端框架的王者就只有一個Spring系列了。

最後Hibernate只是一個對操作數據庫進行映射的框架,有很多也可以替代,比如ibatis, mybatis, JPA等等,因爲orm有自己的優點也有自己缺點,就看使用者如何進行權衡了。從我個人的意見來看,簡單的業務邏輯直接用JPA(Spring基於Hibernate的封裝)就可以了,如果是複雜的,還不如直接寫SQL來得簡單,調優也方便。

爲什麼說ssh已經過時?

現在提倡和流行的是前後端分離(這裏指的分離是完全分離,而不是之前通過模版進行分離,前後端數據交互是根據http進行的)。並且後端設計的接口趨向於Restful的架構。爲什麼有這種變化,因爲現在前端不僅僅是web端,在移動互聯網時代,app也是很大一部分。所以從後端的角度來看,他們都是客戶端。app是沒辦法通過模版進行渲染的,只能通過http傳輸數據。這也是後端服務發展的趨勢。

Java後端技術有很多,如果想要提高,最好的捷徑就是踏踏實實的進行學習,對於剛工作不久的人來說,可以把學習ssh框架的時間用來學習SpringMVC,然後掌握Spring的核心,然後學習什麼是Restful概念,最後可以瞭解JDBC的一些概念(前期不推薦學習ORM框架)。我相信可以有所收穫和成長的。

最後不建議再去衝着學習ssh框架去培訓機構了,然後附上了我個人針對於經驗較少工程師的所建議學習路線。


爲什麼大多數培訓機構還停留在只教ssh框架?

最後如果覺得所講的東西能夠幫助到你,並且希望瞭解更多的知識,進行更詳細的深入的學習,歡迎加羣632109190進行討論和學習。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章