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


自己項目中用的比較多的技術,不僅僅是框架,有下列這些:

1,spring:低侵入式對象管理容器,提供大量註解,方便開發,聲明式事務,集成別的框架變得簡單!

2,springboot:微服務框架,大量現成庫的集合,提供樣板化的配置和開發,簡化初始構建和開發!


3,springcloud:企業級的微服務框架,集成了大量微服務所需要的並能直接使用的庫,比如服務註冊與發現,jvm運行參數獲取,安全認證,斷流器等等!

4,mybatis:持久層框架,輕量級,使sql和代碼得到解耦,支持動態sql,所以能支持強大複雜的sql語句,查詢結果可與JAVA對象自動映射!

5,druid:連接池,可對sql執行次數,效率等進行監控,可對web請求數等進行監控,提供可視化頁面!

6,redis:key-value內存型緩存,可支持多種數據結構的存取,單線程保證線程安全,可用於業務數據加鎖,計數,生成全局唯一key,設計秒殺系統等等!


7,docker:微服務持續集成部署的容器首選,佔用資源少,可構建一套獨立的環境鏡像,避免各種環境複雜性的影響!windows可下載boot2docker體驗,非常好用!

8,mycat:分庫分表框架,有多種分庫分表策略以供選擇,簡單配置即可獲得優秀的數據庫超量數據讀寫!

9,mysql:開源關係型數據庫,性能強大!

10,mongodb:非關係型數據庫,熱數據存儲在內存中,讀取非常快速,文檔式存儲(大對象尤為方便),支持自動分片!

11,AOP:面向切面編程,可將非業務的公共部分抽出,比如日誌,安全驗證等等!

12,logback:日誌工具,簡單配置即可獲取全面的日誌打印,和日誌文件管理!


13,jenkins:持續集成部署工具,通過簡單配置,可實現自動部署!

14,ons,rabbitMq等消息組件:異步處理,最終一致性解決方案!

15,nginx:負載均衡的不二之選,極為穩定,性能極好,配置簡單,有多種均衡方式可供選擇,可輕鬆實現前端跨域訪問!

16,SVN/git:版本控制工具,是團隊並行開發的保障!

17,putty/secureCRT:遠程連接工具,方便對遠程執行命令,查看日誌等!

18,javamelody:集成在代碼中,可以網頁上查看實時內存,CPU使用率等等性能監控指標!jmap:性能分析工具!

以上就是我在工作中,最常用的JAVA開發相關的框架,技術,工具等!

肯定還有什麼是你覺得很重要的?煩請補充,謝謝。。。


哎喲JAVA不錯哦


做了十多年的Java開發,和大家介紹一下我最近一兩年用的比較多的Java框架(包括軟件、中間件)。


  • Spring:從剛開始工作的時候就在用;是一個J2EE框架,提供了對IOC的良好支持,也提供了對AOP技術非常好的封裝;

  • Spring MVC:也是Spring的一個子項目,實現了MVC設計模式,目標是解耦;

  • MyBatis、Hibernate:兩個都是ORM框架,現在Hibernate用的少了;也有用到Spring Data JPA,這個可以看做是更高級的封裝,可以通過方法的命名,實現SQL語句;

可以看到,上面就是SSM框架,現在還是比較流行的。

  • Maven:新老項目都是基於Maven構建,它是一個項目管理工具,主要功能有:項目構建;Jar包的依賴管理;版本管理;持續集成等等等等;

  • JUint:單元測試工具;也是老朋友了;測試框架還有不少,比如Spring Test,JMock等等。

  • Shiro、Spring Security:關於安全認證的框架,用於用戶身份認證,權限授權、加密、會話管理等;

  • Cxf or Axis:老項目WebService用的比較多一些;歷史問題,還是要了解一下;

  • Quartz:定時服務框架,一般都是單機應用;

  • Elastic-job:分佈式定時服務框架,噹噹出品;

  • log4j、logback:各種日誌工具;現在會有一些日誌採集分析的框架,比如ELK;

  • Ehcache:緩存框架,也都是用於單機項目;

  • Redis:說道緩存,現在更多的使用Memcached、Redis;當然Redis也不侷限於緩存;

  • Spring Boot:用於搞定其他框架的一個框架,主要是提供了各種啟動器、簡化了各種配置、方便和其他框架集成、開發者能夠快速上手。

  • Dubbo:一個微服務框架,阿里出品;

  • Spring Cloud:另外一套微服務框架,這個就多了,例如:Config(配置管理中心)、Netflix Eureka(服務註冊、服務發現)、Hystrix(斷路器,這個官方好像已經不建議使用了,又有新的了)、Feign(聲明式服務調用組件)、Ribbon(客戶端負載均衡)、Zuul(網關)、Bus(消息總線)等等。

Dubbo or Spring Cloud:這個看公司的技術棧,用到哪個學哪個,都沒有用到,建議學Spring Cloud。

  • Restful API、RPC:不同風格的服務;

  • Swagger:Restful API自動生成工具;

  • 消息隊列:常用RabbitMQ和Kafka,一種保存消息的容器,也用於系統間解耦;

  • MongoDB:BSON(類似JSON)格式的內存數據庫;

  • Zookeeper:一個分佈式協調服務;

  • Nginx:或其他負載均衡軟件;

  • Docker:容器技術。

我將持續分享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技術



程序汪汪


眾所周知,spring框架一定是使用率最高的框架,幾乎沒有哪家做web系統的不在用spring。它用它依賴注入和麵向切面兩大強大無比的特性,征服了全世界的開發者。



值得一提的是,下面我提到的一些框架大部分都是可以和spring完美結合使用。

mybatis,orm框架的巔峰,用它把SQL語句語句Java代碼完美結合的優勢打動了無數程序員。

springmvc,它是spring家族的一員,但是常常被拿出來說,因為它的出現替代了曾經Struts並且使restful風格成為潮流。



springboot,有了它,可以直接將上述三種框架完美融合,配置精簡併且內嵌了Tomcat,啟動項目只需要簡單得點擊運行就可以跑起企業級大項目。

此外,比如日誌框架slf4j,安全框架shiro,消息隊列kafka等等都是很多企業在用的常用框架。


極客宇文氏


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

一、單體應用架構

單體應用架構比較簡單,普遍用到就是五大框架,包括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學習或求職面試問題可以留言私信,有問必答。

自學編程的魚


做開發的就應該知道,要想成為一個合格的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


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.綜合項目——綜合應用提高班的技術開發一個基於微服務架構的移動商城系統。


不羈放縱愛自由152639911


其實,Spring boot在本質上,就是來回答這個問題的。

Spring boot就是這個世界上最精通企業級java開發(without j2ee)的那批人,通過實踐來告訴我們哪些是主流的框架,以及應用它們的最佳實踐。

他告訴我們,配置應該怎樣管理,日誌、持久化、緩存、Web、消息、監控、集成等企業級開發涉及的一切問題的主流框架有哪些,以及他們的推薦,和他們在框架應用中的最佳實踐。

這就是Spring boot最大的價值所在,他相當於一本最完備的Java企業開發的教科書。

現在流行微服務,其實這是一個更大的課題,他已經超出了開發的範疇,等大家真正掌握之後,可以學習Spring cloud和devops,微服務在本質地上是一個工程課題。


分享到:


相關文章: