首頁>Club>
還有必要學習嗎?
23
回覆列表
  • 1 # 老五1024

    ssh確實比較老了,起碼struts沒人用了,現在都是springMVC了,spring是主流,不管是分散式系統還是什麼別的架構,都是以spring為基礎的,hibernate用的用量也不是特別大,瞭解基本用法就好,建議學mybatis。以上幾個都是基礎,學習的過程當中可以再學學快取,佇列,同時別忘了JAVA基礎,集合,list,記憶體機制,GC,這些都差不多熟悉了之後就可以開始學分散式架構,dubbo,spring cloud等,如果再想學,可以往機器學習tensorflow,或者區塊鏈建議學fabric,以及其他比較專的領域發展,當然,這些都是技術,與業務無關哈。

  • 2 # 此生唯一

    SSH是我最早用過的web整合框架!中間已經經歷過四代框架了!

    SSH:傳說中的三大框架,由Spring,Struts,Hibernate組成,SSH流行的時候正是MVC(model,view,controller)模式大行其道的時候,其中spring控制作為框架的管理者,struts控制業務跳轉,hibernate做持久層框架,可以說,當時三大框架是JAVA開發工程師必須掌握的技術了!

    但是,由於hibernate對jdbc封裝的太重了,sql也是自動生成的,開發人員沒法自己進行SQL最佳化,而且hibernate的配置檔案過於繁瑣,大點的專案痛不欲生,同時,對於批次操作等的操作支援太弱!

    這時候mibatis取代了hibernate演變成了SSI框架!解決了hibernate的不足,但是整個架構還是很笨重!

    因為struts同樣存在配置繁重,安全性不足的原因!

    很快,SSM誕生了,由Spring,springMVC,mybatis構成,不僅是輕量級配置,可以使用大量的註解代替配置,安全性也得到提高!

    雖然SSM框架幾近完美,但是時代發展太快,隨著大型分散式的普及,微服務逐漸變為主流,而SSM框架並沒有對於分散式有良好的支援,而且除了業務之外的開發任務繁重!

    這時候springboot,dubbo等微服務框架開始大方光彩,不僅能將業務系統拆分到一個很細的粒度,減少業務耦合,而且對於效能監控,閘道器,服務註冊與發現等都有完整良好的支援!

    現在,微服務成為大型網際網路公司的第一選擇!

    所以web框架主要經歷了SSH,SSI,SSM,Springcloud等階段!如今微服務已經成為主流,大部分web開發者逐漸轉向微服務開發,如果你現在再學SSH,無疑是增加自己的負擔的同時,對找工作等也沒有益處!

    技術就是如此,推陳出新較快,擁抱最新的技術才是最好的做法!分享新技術,從我做起,很多分享,敬請關注。。。

  • 3 # 會點程式碼的大叔

    對於這個問題,我覺得自己很有發言權,因為我就是從SSH那個時代過來的。

    關於SSH

    我剛入行的時候,SSH還是挺火的,額...大概是十年前了。

    Spring:首先現在Spring依然很火,也歸功於Spring一直在快速迭代升級,現在大多數專案都在用Spring;而且現在Spring下面的子框架非常的多,這裡說的Spring主要還是指Spring Framework。

    Hibernate:一直沒有被淘汰,但是一直也火不起來,現在更多的專案在用Mybatis或者JPA。說實話,我覺得Hibernate還是挺強的,但是想用好Hibernate不容易。

    Struts:Struts1和2我都有用過,到現在已經沒落了,新專案很少有人在用,至少我們好多年前就不用了(除非是一直維護的老專案),現在Struts的工作基本上被Spring MVC代替了。而且Struts一而再,再而三的曝出漏洞,在資訊保安方面有著很大的隱患。

    為什麼說SSH過時了?

    現在很流行的一個架構是前後端分離,為什麼這種架構這幾年會很火,我覺得還是由於移動端的快速發展。

    以往的系統都是以PC端為主,開發一套程式,頁面和後端程式碼都在一個包裡,部署好了就能用。

    但是現在,不僅僅需要支援PC端,還要支援各種移動端,如果再專門為移動端開發一套應用,不僅費時,而且需要維護多套程式。

    所以現在前端就是純頁面,後端只提供介面,前後端的互動是透過Http介面。

    現在學什麼?

    對於SSH來說,Spring可以好好學習一下(當然要學習新版本),Hibernate可以瞭解一下,Struts就不要再學習了。

    現在單體應用,使用最多的是SSM組合:Spring + Spring MVC + Mybatis;

    關於JPA,我認為大多數的系統不適用,它適用於微服務場景下,對資料的查詢都是單表查詢(SQL簡單),大多數公司的專案都到不了這個程度;不過雖然可能用不上,還是要學習一下。

    Spring boot:現在很流行的一個框架,提供了各種啟動器、簡化配置、方便整合、有助於開發效率。

    如果接觸前後端分離,甚至是微服務的架構,需要熟悉HTTP介面、Rest API,最好可以掌握一套微服務框架,例如Spring Cloud、或者Dubbo(如果不是工作需要,我推薦Spring Cloud)。

  • 4 # qu個名字還真難

    如果是初學的話建議 springMVC+spring+mybatis springMVC 掌握的差不多就換spring boot 以後的主流

  • 5 # 平章芯事

    先給個論斷:過時了!

    ssh盛行於網站時代。現在是多客戶端時代,網頁、app、微信、小程式……。你不可能為每一個客戶端開發一套後臺,於是就只一套後臺,那麼這時候至少struts已經沒有了用武之地了。現在的後臺提供了api,只提供資料,前後臺分離開發,也就沒有了渲染引擎什麼事了。

    所以,現在是微服務時代,是前後端分離的時代,舊技術仍在用,但架構已經不同。

  • 6 # 一個存在感小透明

    確實有那麼點過時了,我親身經歷了專案從SSH替換到SSM框架的過程。

    如果現在想學習的話,更加建議去學習SSM框架。

    由於二者的區別主要在於資料持久層是用hibernate還是mybatis,因此,以下我們僅針對這兩個框架做分析。

    hibernate與mybatis的相同點

    1 都是在xml檔案中透過SessionFactoryBuiler來生成SessionFactory,之後再生成Session,最後由Session來執行SQL語句和事務,且以上提到的物件生命週期基本是一致的。

    2 都支援JDBC和JTA事務處理

    hibernate與mybatis的不同點

    1 hibernate是一個ORM框架,而mybatis是一個半自動的框架。這樣的配置有時候是好處,有時候也是壞處。hibernate由於對JDBC的封裝度比較高,sql語句如果需要最佳化會遇到一定的困難,此外它的抽取策略,處理表的關係時也是尤為複雜。相對應的就是mybatis,它在配置好xml檔案後,需要人工配置對於的pojo,Mapper檔案等等,因此算是一個開發成本,但是好在現在eclipse和intelliJ等IDE中都有mybatis generator這個外掛,可以自動的幫助使用者生成上述需要的檔案,此外,如果需要最佳化sql或者增加sql,只需要在對應的XXX

    Mapper.java

    和XXX

    Mapper.xml

    檔案中增加對應的宣告和sql語句就可以了。

    2 hibernate的資料庫移植性很好,而mybatis的在這方面就有劣勢了,不同的庫需要不同的sql。但是對於並不經常修改資料庫的場景,mybatis也已經足夠了。

    3 Hibernate對物件的維護和快取要比MyBatis好,對增刪改查的物件的維護要方便。

    hibernate與mybatis的不同點當然還有很多,我們今天就介紹到這裡。

  • 7 # 極客宇文氏

    SSH毫無疑問是Java Web開發中傳統並且經典的框架,如果沒有猜錯的話大部分軟體工程專業等計算機專業都還會在課堂以及教科書上教學這個框架。因為它擺脫了之前servlet和Javabean的麻煩,使開發效率提升很多。

    參加自己用過SSH練手,除了搭建環境比SSM麻煩以外,更多的是SQL語句的運用非常不方便,不是說SSH不能寫複雜的業務邏輯,而是如果需要用它寫,那將對SSH進行比較深入的學習,學習成本相對較高。

    現在企業級專案大部分選用SSM甚至直接Springboot,連Tomcat都內建了的框架,非常方便。最重要的是mybatis的簡單上手和SQL的便捷管理,簡直是神級框架。

    你如果仔細觀察的話,你會發現,無論Java Web裡框架怎麼變,Spring框架一直都是核心部分,也就是說你如果想認真研究一款框架,毫無疑問首選Spring框架。

  • 8 # 小胖子小強

    SSH確實已經過時了。我們團隊應該是12年開始就使用SSM了,當時前臺頁面還是JSP。現在基本都是前後端分離 rest方式,spring boot快速構建專案。加上現在微服務盛行時代。dubbo cloud都是主流行技術。當然這也得專案大小。

  • 9 # 程式猿W

    SSH 是真的過時了。但是很多老專案當時都是使用SSH做的,那麼後期的維護依然是延續這一體系。但是新專案一般不會選擇SSH,目前主流是SSM。

    SSH是什麼?

    那我們先講一下SSH到底是什麼?

    1、struts2: struts2是一個基於MVC設計模式的Web應用框架,它本質上時一個servlet,在MVC設計模式中,struts2作為控制器(Controller)來建立模型和檢視的資料互動。

    2、Spring: Spring提供了強大的IOC、AOP及webMVC的功能,Spring框架包含Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。

    3、Hibernate:Hibernate是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,它將POJO與資料庫表建立對映關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。

    hibernate 執行流程:

    三大框架的流程之前關係是:JSP->Struts2->Service->Hibernate 的順序。

    SSH為什麼會被SSM取代呢?

    SSM = Spring + SpringMVC + Mybatis

    首先Struts2 被爆出高危安全漏洞,在應用和實施過程中有較大的安全隱患。在開發中也有很多方面不便利,隨著後來restful方式的流程,struts2逐漸淡出人們的視線。

    其次是Spring 是以IOC為核心的,功能模組比較強大,在此基礎上增加了web功能,推出了SpringMVC ,可以完全代替Struts2的功能。

    Hibernate 完全掌握的門檻高,效能最佳化比較麻煩、複雜對映。

    而Mybtis 學習成本地。可以進行更為細緻的SQL最佳化,減少查詢欄位、統一的SQL管理。最佳化方便,可更好利用sql編寫經驗。適用於對效能要求較高,有大批次 的查詢修改,並且業務實現沒有過多依賴資料關係的模型,比如:電商、O2O等網際網路專案。

    現在都在用什麼框架呢?

    如果你是在維護老專案(SSH),你可以對SSH學習一下,否則 直接學習SSM(Spring + SpringMVC + Mybatis)就可以了。

    Spring :Spring 兩個核心:IOC +AOP,IOC就是依賴注入,由Spring 來管理Bean的生命週期,而AOP是面向切面程式設計,可以處理一些非業務功能,比如日誌、效能、事務等。

    學完基本功能以後,就可以學習Spring原始碼知識點,IOC原始碼主要學習Bean的生命週期,還有很多鉤子方法,這些對以後框架的整合有很大的幫助。

    AOP底層實現原理主要是動態代理 + 責任鏈 + 遞迴。

    2.SpringMVC

    spring mvc本質上還是在使用Servlet處理,並在其基礎上進行了封裝簡化了開發流程,提高易用性、並使用程式邏輯結構變得更清晰

    a. 基於註解的URL映謝

    b. http表單引數轉換

    c. 全域性統一異常處理

    d. 攔截器的實現

    執行流程如下:

    學完基本功能,也可以學下原始碼,主要是DispatchServlet 這個類。

    3、Mybtais

    Mybatis 執行流程如下:

    myBatis 專注於sql 本身,其為sql 映謝而非完整的ORM,需要自己編寫sql 語句,這是其優點也是缺點。優點是:最佳化方便,可更好利用sql編寫經驗。缺點是當資料修改之後調整麻煩耗費時間長.

    試用場景:適用於對效能要求較高,有大批次的查詢修改,並且業務實現沒有過多依懶資料關係模型,比如:電商、O2O等網際網路專案。

    網際網路專案對DAO層的要求:

    1、對資料庫的訪問更新純粹

    2、儘可能不要使用資料庫做運算

    3、SQL語句可以針對性的最佳化(減少查詢欄位、查條件排序例 、查詢條件儘可能命中索引)

    Mybatis原始碼也是比較經典的,為什麼Service可以直接呼叫Dao介面呢?底層實現原理也是動態代理。

    4.SpringBoot

    SpringBoot從本質上說,也是Spring,目的是簡化Spring的配置,可以快速整和第三方框架。

    它使用“約定大於配置”(專案中存在大量的配置,此外還內建了一個習慣性的配置,讓你無需手動進行配置)的理念讓你的專案快速執行起來。使 用SpringBoot很容易建立一個獨立執行(執行jar,內嵌Servlet容器)、準生產級別的基於Spring框架的專案,使用Spring Boot你可以不用或者只需要很少的Spring配置。

    總結

    1、如果你是傳統企業開發單體專案可以使用 SSM = Spring + SpringMVc + MyBtis

    或者 SpringBoot + Mybatis

    2、如果是分散式則可以使用: SSM +Dubbo 或者SpringBoot + myBatis + Dubbo

    3、如果是微服務 : SpringCloud 全家桶

  • 中秋節和大豐收的關聯?
  • 旅遊拍照姿勢大全?