現在企業開發時,Java所用到的主流框架有哪些?


做開發的就應該知道,要想成為一個合格的Java開發者,語言學兩年、框架學一年算是真正上道了。

今天我就帶大家看一下目前主流的Java框架。首先是Java祖師爺鎮樓!

老牌ORM框架淺說

ORM框架採用元數據來描述對象、關係映射細節,元數據一般採用XML格式,並且存放在專門的文件中,將對象持久化到數據庫中。我們可能會寫很多數據訪問層代碼,不斷地從數據庫保存、刪除、讀取對象信息,但是往往這些代碼是重複的,ORM則可以大大地減少重複性,但是缺點是多表聯查的時候就痛苦了。


常見的ORM框架有以下幾種,hibernate、ibatis、mybatis等。

struts2框架

struts2是struts的下一代產品,本質上是相當於servlet,是基於mvc設計模式而設計的,本質上是是在struts的基礎上加入了webwork的設計哲學,本質上是兩個框架的結合,它是一個更加簡潔的mvc實現。

強大的表達式語言,基於mvc模式的強大的可變的、可重用的標籤API都是其經典優勢。

Spring MVC框架

對於初學者來說,這是一個堪稱完美的教科書級別的mvc框架,非常標準,Spring框架提供了構建web應用程序的全功能mvc模塊,在使用Spring做開發時,你可以選擇SpringMVC框架或者選擇加入其他的類似Struts2等MVC框架。可以說是味道非常地道、體驗非常純正的servlet系統。


Springboot正在興起

PHP出現以後,也是在PHP逐漸變得強大以後,人們越來越發現PHP就是為web而生的,為快速開發而生的,用PHP你可以集中精力在業務開發,複雜的業務邏輯交給其他語言。

正是因為PHP的高效,Java逐漸感受到了壓力,於是Springboot就應運而生,Springboot就是為了快速開發而生的。

最後說一說框架整合

Struts2+Spring+hibernate逐漸因為Struts的諸多漏洞慢慢地被Spring+SpringMVC+Hibernate/Mybatis替代,並且可以預見的是隨著Springboot逐漸走向舞臺中央,Springboot+Mybatis會逐漸成為行業主流。

Java是一門強大的語言,曾經輝煌過,在那個年代因為平臺無光、可靠安全、多線程、分佈式、近乎完全的面向對象,多年雄踞編程語言榜首,在企業級應用、電子商務領域佔據著較大優勢。


隨著PHP、python、C#的成長,加上Oracle公司的作死,動不動打打官司,Java的江湖地位受到了一定的挑戰,而且在這個時代Java的優勢已經不太明顯,但是缺點卻越來越突出,未來Java發展如何還真不好說。

作為一個Java出身的程序員,深感嘆息,希望甲骨文不要把Java玩死了!我常說Java很垃圾,但JVM卻很強大,未來JVM的空間也許會比Java更值得期待,Kotlin就是很好的例子!當然技術終究是要進步的,新技術終歸要替代舊技術,知識時間問題而已。畢竟不是所有編程語言都最終像C/C++一樣堅挺。


EmacserVimer


我來回答一下,具體用什麼框架跟項目規模和大小有很大的關係,下面從單體應用架構和微服務架構兩個方面講一下。

一、單體應用架構

單體應用架構比較簡單,普遍用到就是五大框架,包括mvc層、持久層等。由於這五大框架是web開發框架學習的基礎,相對於微服務框架比較簡單,在此簡單介紹一下。

1.Spring:ioc容器和bean管理,解決的是業務邏輯層和其他各層的松耦合問題,也起到紐帶和橋樑的作用。

2.Springmvc:目前使用最普遍和最流行的mvc框架。

3.Struts2:也是一款類似於Springmvc功能的mvc框架,它的前身struts1基本沒人使用了。struts2相較於springmvc有諸多劣勢,包括自身漏洞門問題,慢慢走向沒落。現在使用的大部分都是維護的老項目老系統。

4.hibernate:重量級的面向對象的持久層框架,其實它的功能非常強大,由於其自身功能的強大在使用和配置上比較複雜,很多程序員待之以鄙夷。hibernate用於中小系統項目還是很合適的,開發效率較高。

5.mybatis:是一款中低量級別的半自動的持久層框架,由於自身使用的靈活性和易於aql調優,目前還是非常流行的,很多大型項目都用到它。

二、微服務架構

微服務架構相對於單體應用架構複雜些,尤其是微服務架構用到分佈式應用架構就更為複雜。

1.springboot:微服務基礎框架,由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。特點 :1. 創建獨立的Spring應用程序 2. 嵌入的Tomcat,無需部署WAR文件 3. 簡化Maven配置 4. 自動配置Spring 5. 提供生產就緒型功能,如指標,健康檢查和外部配置 6. 絕對沒有代碼生成和對XML沒有要求配置。一句話總結:使用springboot可以高效快速開發web應用,而且可以不使用單體應用開發框架中那些繁雜的xml配置。

2.Dubbo:Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分佈式的需求,其實是不需要用的,只有在分佈式的時候,才有dubbo這樣的分佈式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分佈式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊) 其核心部分包含: 1. 遠程通訊: 提供對多種基於長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請求-響應”模式的信息交換方式。 2. 集群容錯: 提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集群支持。 3. 自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。

3.SpringCloud:用官方文檔的說明:Spring Cloud為開發人員提供了快速構建分佈式系統中的一些通用模式(例如配置管理,服務發現,斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖,領導選舉,分佈式 會話,群集狀態)。 分佈式系統的協調導致了鍋爐板模式,並且使用Spring Cloud開發人員可以快速地站起來實現這些模式的服務和應用程序。 它們可以在任何分佈式環境中正常工作,包括開發人員自己的筆記本電腦,裸機數據中心和受管平臺,如Cloud Foundry。

以上就是公司普遍使用的一些框架,當然還有其他的一些框架,比如jFinal、ejb、公司自研封裝的一些框架等等,不管用什麼框架,技術選型的前提就是滿足需求,學習成本低,開發效率高,伸縮性能和可擴展性能要好等等。 以上,你都用過嗎?歡迎留言討論。

【無情懷,不編碼。做一個有情懷的碼農,雖千萬人,吾往矣!】 關注java自學、java技術、求職領域,為你導航領路,指點迷津,分享學習感受和技能經驗。歡迎點贊、轉發、關注和留言,任何java學習或求職面試問題可以留言私信,有問必答。

一個有情懷的碼農


這問題太好答了我也參加

Spring【排行第一,沒人敢說第二】

Spring在手天下我有

學Java,肯定必須把spring框架學好。spring真心太強大了。

Spring的子孫特別多,也特別強悍。


SpringMVC必須學會

Spring IOC/DI和AOP原理,非常基礎重要的概念,必須搞明白


Spring的生態項目:

Spring Boot:一站式快速開發解決項目。

Spring Cloud:提供對分佈式系統的支持。

Spring Data:提供對主流的關係型及NOSQL型數據庫的封裝支持。

Spring Security:支持系統授權、認證的支持。

Spring Session:提供對session管理的支持。

Spring Batch:提供對大數據的批處理簡化處理優化的支持。

Spring Social:提供對社交網絡API的集成,如FACEBOOK、新浪微博等。

Spring AMQP:提供對AMQP的消息支持。

Spring LDAP:提供並簡化使用LDAP的支持。

等等..............


Spring【排行第一】

Ibatis/mybatis

互聯網公司的首選 Ibatis/mybatis

Ibatis是開源軟件組織Apache推出的一種輕量級的對象關係映射(ORM)框架

ibatis3.*版本以後正式改名為mybaits,它也從apache轉到了google code下

框架套餐【最常見的】

Spring+SpringMVC+Mybatis 【很基礎的框架】

此套餐學會學明白了,其他套餐都可以放心吃下。

很多IT公司,會在自己公司框架中定製spring,如阿里、華為、騰訊,人家都把spring功能定製化,但底層核心還是spring的,所以spring基礎必須掌握。

高級套餐 Spring+SpringMVC+Mybatis+RPC框架+消息組件等等各種中間件,企業框架都集成了非常多中間件。慢慢學吧,一個個啃下來。


框架套餐。歡迎關注我,一起交流Java技術



程序汪汪


Java比較常見的主流框架:

  • SpringMVC+Spring+MyBatis
  • SpringMVC+Struts2+Hibernate

  • Springboot+MyBatis

Springboot比較易用,不需要配置,但追求完美還是用SSM的框架比較好。SSH是比較重量級的因為Hibernate是重量級SQL框架,而MyBatis比較輕量級。現在SSH用的比較少了,更多的是SSM以及Spring這些。


常見主流框架可以到相關的網站上去了解一下Java相關的開發崗位,都有詳細的任職要求說明,這些都是企業常見的,更符合企業的需求,然後查缺補漏,進行系統的學習。


當然了,除了框架之外,基礎的東西也是需要進行夯實的。學習Java的時候是在“如鵬網”上學習的,有網絡的地方就可以學習,根據自己的時間來靈活安排學習進度,每個章節的後面都有相應的練習題和麵試口才題,需要通過錄音的方式來進行提交,有新的課程更新了,也是可以繼續來學習的。這些都是需要掌握的,可以作為參考。


如果再會一些比較新的技術就更不錯了,比如說:分佈式、設計模式、前端技術、網絡支付、全文搜索引擎、Docker、WebService等內容。

2、NoSQL

3、設計模式

4、分佈式技術

5.綜合項目——綜合應用提高班的技術開發一個基於微服務架構的移動商城系統。


分享到:


相關文章: