-
1 # 不羈放縱愛自由152639911
-
2 # EmacserVimer
做開發的就應該知道,要想成為一個合格的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++一樣堅挺。
-
3 # 程式魚哥
我來回答一下,具體用什麼框架跟專案規模和大小有很大的關係,下面從單體應用架構和微服務架構兩個方面講一下。
一、單體應用架構單體應用架構比較簡單,普遍用到就是五大框架,包括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。
-
4 # 程式汪汪
這問題太好答了我也參加
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框架+訊息元件等等各種中介軟體,企業框架都集成了非常多中介軟體。慢慢學吧,一個個啃下來。
-
5 # 正宗烏龜魚
其實,Spring boot在本質上,就是來回答這個問題的。
Spring boot就是這個世界上最精通企業級java開發(without j2ee)的那批人,透過實踐來告訴我們哪些是主流的框架,以及應用它們的最佳實踐。
他告訴我們,配置應該怎樣管理,日誌、持久化、快取、Web、訊息、監控、整合等企業級開發涉及的一切問題的主流框架有哪些,以及他們的推薦,和他們在框架應用中的最佳實踐。
這就是Spring boot最大的價值所在,他相當於一本最完備的Java企業開發的教科書。
現在流行微服務,其實這是一個更大的課題,他已經超出了開發的範疇,等大家真正掌握之後,可以學習Spring cloud和devops,微服務在本質地上是一個工程課題。
-
6 # 此生唯一
自己專案中用的比較多的技術,不僅僅是框架,有下列這些:
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開發相關的框架,技術,工具等!
-
7 # 會點程式碼的大叔
做了十多年的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:容器技術。
-
8 # 極客宇文氏
眾所周知,spring框架一定是使用率最高的框架,幾乎沒有哪家做web系統的不在用spring。它用它依賴注入和麵向切面兩大強大無比的特性,征服了全世界的開發者。
值得一提的是,下面我提到的一些框架大部分都是可以和spring完美結合使用。
mybatis,orm框架的巔峰,用它把SQL語句語句Java程式碼完美結合的優勢打動了無數程式設計師。
springmvc,它是spring家族的一員,但是常常被拿出來說,因為它的出現替代了曾經Struts並且使restful風格成為潮流。
此外,比如日誌框架slf4j,安全框架shiro,訊息佇列kafka等等都是很多企業在用的常用框架。
-
9 # 傳智播客
至於各種企業會用到哪些框架,有的公司的歷史專案很多,新專案又不得不基於老專案,那麼很多以前用的框架和基礎還是得帶著走。另外比如出了新框架和新技術,但是公司本身的團隊沒有成本去探索,業務方面也就用不到那麼高大上的東西。
現在企業開發時,Java所用到的主流框架有哪些:Spring:Spring團隊一向強大"如果一個Spring的註解解決不了你的問題,那就用2個。"
MyBatis和Hibernate,在很多公司用的都挺多的。拋開絕對性不談,更多的小一些的企業看重團隊整體的能力再決定用什麼。會MyBatis的很多,那麼就用MyBatis,會Hibernate的多,就用Hibernate。但是總體來說Hibernate比MyBatis相對更難。至於MyBatis支援自定義的SQL,方便最佳化什麼的,一般人都沒有時間和能力最佳化資料庫。
Struts2,這是老牌的框架了,現在的企業新專案中很少用到,之前是因為嚴重的漏洞幾乎進了冷宮。而且使用這個框架後的開發方式並不他符合現在的理念,所以在接觸框架的時候,已經完全可以不用學Struts2了。
總結:很多非網際網路企業,大多在國企有部分老專案仍然使用SSH,因為系統多數面向內部,也沒有什麼併發所以也沒什麼必要換了。但是如果你去了還要求會用Struts的話,你可以不考慮這家公司了。
-
10 # 西敏寺鐘聲
我也是做java的,要我說最主流肯定非spring莫屬了,不論springboot還是什麼cloud,都是基於spring的思想來開發的,可以說精通spring的思想,看任何關於java的框架原始碼,都一樣。
-
11 # 波波你行
目前主要是spring家族,比較流行是的springboot,然後基於springboot的springcloud
-
12 # T生活太難T
spring boot
mybatis
redis
spring cloud
vue
nodejs
等等的
-
13 # JAVA小學生
主流框架還是spring生態的內容!
現在微服務架構已經成為主流,所以spring生態裡是springboot和springcloud是首當其衝的!還有Apache的dubbo也是主流。可以學習。
其他關於JAVA的比如mybatis,hibernate,redis,netty,ngnix這些都是比較常用於微服務分散式架構的工具和框架!
-
14 # 碼農45
JAVA語言開發的LMAX架構挺牛的,其核心是disruptor無鎖同步佇列,實現了快取行填充,避免了記憶體屏障,號稱單執行緒每秒處理六百萬訂單,是國外一線外匯交易平臺開發的,每天處理大量資料。應該是目前JAVA裡面最牛的架構了,連GO都移植了disruptor
-
15 # 千鋒武漢
Java是世界第一程式語言,這已經達成共識,是毋庸置疑的真理。框架是程式設計師們必學的知識點,而且是十分重要的應用,Spring、Struts、Hibernate也是經典中的經典,最常用的框架型別。本文主要介紹2020年流行的9大Java開發框架,希望您可以對Java框架有更多的認識。
一、Spring框架Spring框架框架排名首位,具有開發複雜Web應用程式的出色能力,這些應用程式因效能突出而廣受讚譽。使Java開發人員能夠輕鬆地建立企業級應用程式。Web應用程式開發人員可以證明Spring框架的能力。是Spring成為Java開發人員最愛的原因。
在開發人員的選擇中,SpringMVC和SpringBoot遠遠領先於其他Java技術。對於開發人員來說,這裡的一大優勢是他們可以不受其他模組約束而專注於一個模組,因為Spring利用了控制反轉(IoC)。其他優點是一個全面的配置模型,支援傳統資料庫和現代資料庫(如NoSQL),並透過支援面向方面程式設計來支援內聚開發。提供一些模組如SpringMVC、SpringCore、SpringBoot、SpringTransaction等。
二、Hibernate框架作為一個物件關係對映(ORM)資料庫,改變了我們以前檢視資料庫的方式。儘管不是一個全棧框架,但可以極其輕鬆地為多個數據庫轉換資料。支援多個數據庫的能力使很容易擴充套件,無論應用程式的大小或使用者的數量如何。速度快、功能強大、易於擴充套件、修改和配置。
三、Struts框架Struts框架幫助自定義軟體開發人員建立易於維護的企業級應用程式。這個框架的USP是的外掛。們是JAR包,這意味著們是可移植的。Hibernate外掛和Spring外掛分別可以用於物件關係對映和依賴注入。使用此Java框架開發應用程式可以減少處理時間,提供了組織良好的Java、JSP和Action類。
四、Play框架使用該框架的頂尖公司包括LinkedIn、三星、衛報、Verizon等。這隻能說明的可信度。該框架提供了速度、可伸縮性和效能。使用者介面非常簡單,使移動應用程式開發人員可以快速理解。主要用於開發需要統一內容建立的應用程式。
五、GoogleWebToolkit框架GoogleWebToolkit框架框架用於客戶端開發,類似JavaScript。是一個開源的Java框架,這意味著是免費的。谷歌廣泛使用了這個框架,谷歌產品如AdSense、谷歌錢包、AdWords都是使用編寫的。藉助GWT程式碼,可以輕鬆地開發和除錯Ajax應用程式。Java開發人員更喜歡使用這個框架來編寫複雜的應用程式。書籤、跨瀏覽器可移植性、歷史記錄和管理是的一些特性。
六、Grails框架Grails框架開源框架在企業級JavaBean中非常流行。可用於為內容管理系統、RestfulWeb服務和電子商務網站建立健壯的、可伸縮的應用程式。與JavaSpring、Hibernate、quartz、EE容器和SiteMesh等其他Java技術搭配使用。的部分優點包括簡單的GORM、靈活的配置檔案、帶有多個外掛的高階外掛系統、簡單的物件對映庫以及一個支援和響應社群。
七、Blade框架任何自定義應用程式開發人員都可以在一天內快速理解這個框架。JavaBlade於2015年推出,以簡單和輕量級著稱。這個框架最大的亮點是快速建立Web應用程式的能力。一個全棧Web開發框架,提供一個簡單而簡潔的編碼結構。Blade基於Java8,提供了RESTful風格的路由介面。支援webjar資源和外掛擴充套件。
八、JavaServerFaces框架Grails框架Java框架是由Oracle開發的。可用於建立企業應用程式、本機應用程式和Web應用程式開發。的一大優勢是可以將表示層與應用程式程式碼輕鬆地連線。提供了一個用於表示和管理UI元件的API集。具有清晰的體系結構,可以區分應用程式邏輯和表示。JSF使用XML進行檢視處理而不是Java。
九、Vaadin框架用於精簡Java開發的優秀平臺。您可以使用來獲得自定義的Web開發服務。該框架的一大優點是伺服器和瀏覽器之間的通訊順暢。Vaadin提供了從Java虛擬機器直接訪問DOM的功能。在最新發布的版本中,被分成了兩部分。VaadinFlow是一個輕量級框架,可以實現伺服器端通訊和路由。
-
16 # 一一哥Sun
Java作為目前最流行的後臺開發技術,從1995年到現在經歷了25年的發展,技術體系也是不斷的豐富和完善,Java技術體系裡面也提供了非常優秀和豐富的框架。那我就來說說Java體系裡比較常用的框架有哪些吧。
1.SSH組合
一般常說的SSH組合框架,就是Struts,Spring,Hibernate,後來Struts被SpringMVC來取代,所以SSH也可以是後者的組合。在這4中框架中,Struts和Hibernate目前來看,已經比較陳舊,而且也是比較重的框架,企業中目前已經很少用了。一些二三線小公司或者一線城市中的老舊專案,可能還在用這兩種框架,新專案基本不會再採用這兩個框架了。所以對於Struts和Hibernate框架,瞭解即可。
2.SSM組合
一般來說SSM組合都是Spring,SpringMVC,Mybatis,也可以是Mybatis的進階版,Mybatis-plus。那麼這個組合可以說是目前比較流行的組合了,一二線城市中,不少的專案還在使用SSM框架。
3.SpringBoot
嚴格的來說SpringBoot不能算是一個框架,更應該是Spring官方為了簡化開發而提供的一個工具集。可以說是目前Java領域中開發的首選,基本上一二線城市的新專案,都是基於SpringBoot環境的開發了,這個開發起來簡直不要太爽。
我本人寫了一些系列的SpringBoot教程,基於SpringBoot
2.2.5來寫的,部落格地址:
https://blog.csdn.net/syc000666
4.SpringCloud
微服務架構微服務是最近這兩三年比較火爆的框架組合,提供了一整套的解決方案,一線城市裡尤其是網際網路公司,如果不整點微服務,都不好意思說自己是程式設計師。
5.許可權管控框架
Shiro,SpringSecurity,單體專案或者分散式專案,許可權管控的框架這兩個還是比較流行的。
6.前端框架
layui,easyui,bootstrap,elament-ui,vue,react等
7.分散式框架組合
dubbo+zookeeper是前幾年比較流行的分散式解決方案,但是這兩三年一線城市中新專案中基本已經拋棄,轉而使用微服務了。
8.其他框架
-
17 # 急速馬力快de原始碼控
Java是主流開發語言,應用普遍。以Web服務開發為例,基本框架可分為資料層、HTTP開發、非同步任務、鑑權認證、日誌監控等幾大類別,不同的業務場景也會用到其他擴充套件框架。
注意學習框架時要挑選當前廣泛使用的Top3,已經過時或者太新還看不清楚未來的框架,可以在需要時再去學習研究。
雖然框架很多,但是可以專題分類,只要在學習過程中不斷總結,針對常用的幾個框架重點學習,積累起來非常快。
Web服務開發常用框架分類介紹1)Spring框架,Spring Boot和Spring Cloud是最常用框架,有非常豐富的元件和易用的功能
2)資料層,MySQL資料庫,MyBatis持久層,Flyway版本化管理資料庫SQL指令碼,Ali Druid連線池等框架。
3)快取系統,最常使用Redis,MongoDB等其他NoSQL也經常使用。
4)非同步訊息佇列,常用ActiveMQ,RocketMQ,RabbitMQ,建議選擇一個學習。
5)JSON資料處理,常用Fastjson,Gson,Jackson,Json-lib,推薦Fastjson
6)開發工具包,Apache Commons套件,lang, collections, codec, io等功能庫。
7)網框開發工具包,推薦Apache HttpClient,其他比如OKHttp,Java原生庫HttpURLConnection使用也很普遍。
8)鑑權認證,控制訪問許可權,REST介面安全,常用Apache Shiro, Jwt
9)非同步任務排程,複雜耗時任務,使用Quartz框架非同步執行,Spring框架自帶的Schedule可以滿足小型專案使用。
10)單元測試JUnit + Mockit
11)日誌系統,整合LogBack,接入LogStash配合ELK分析處理。
12)服務監控,使用Actuator等框架實現執行資訊收集和報警,配合影象化展示工具,比如Prometheus + Grafana + AlertManager
13)REST介面開發時,推薦使用Swagger介面文件,Postman介面除錯工具
-
18 # J小勁
你好,目前常用的是ssm和微服務。至於之前的ssh已經銷聲匿跡了……
當然springcloud全家桶也是以spring為基礎的。
介紹一下spring。Spring是輕量級的Java EE應用程式框架。Spring的核心是個輕量級容器,實現了IOC模式的容器,Spring的目標是實現一個全方位的整合框架,在Spring框架下實現多個子框架的組合,這些子框架之間彼此可以獨立,也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案 。
Spring中最重要的兩個概念
1. IOC容器:
IOC容器就是具有依賴注入功能的容器,IOC容器負責例項化、定位、配置應用程式中的物件及建立這些物件間的依賴。應用程式無需直接在程式碼中new相關的物件,應用程式由IOC容器進行組裝。在Spring中BeanFactory是IOC容器的實際代表者。
2. AOP
簡單地說,就是將那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任封裝起來,便於減少系統的重複程式碼,降低模組間的耦合度,並有利於未來的可操作性和可維護性。AOP代表的是一個橫向的關係
-
19 # Java實戰技術
根據筆者的工作經驗總結一下,使用Java作為編碼語言,經常會用到的框架有兩類,一類是框架本身就是用 Java 語言開發的,另一類是非Java 語言開發的,下面分別分享一下。
使用Java 語言開發的常用框架Spring框架
Spring核心框架自從誕生以來,一直都是最主流的框架之一,它提供了管理 Bean 物件的容器,省去了我們自己去 new 物件,只要透過簡單的依賴注入就可以引入想使用的物件。這是 Spring 的核心功能之一的 IOC(控制反轉),它的作用就是幫我們管理物件,省去了自己建立物件,而是由 Spring 來自動進行裝配。
Spring還提供了另一個核心功能 AOP(面向切面程式設計的思想),透過動態代理來實現對一些切面功能的處理來降低耦合,比如統一的異常處理、日誌處理、許可權校驗等等。
Spring擁有一個很大的開發生態圈,很多框架都能透過簡單地配置和Spring 共同使用,大大方便了我們進行開發。
SpringMVC
SpringMVC是一個使用了 MVC 分層模式的 Web 框架,它底層其實就是一個 Servlet,接收並處理請求,然後返回響應。
MVC 分層架構主要分為:
Model 層是對應用程式資料的一個封裝;View 層負責展示應用程式返回的陣列;Contorller 層負責處理使用者請求,並建立對應的模型,然後做渲染。MyBatis
MyBatis是一個物件關係對映(Object Relational Mapping)框架。它主要關注物件與資料庫之間的對映,框架會遮蔽操作資料庫的細節,然後把資料庫返回的資料封裝成物件,我們在應用中直接操作物件就行了。
也因為MyBatis框架的特性:邏輯程式碼和SQL分離,所以需要自己手寫 SQL,這既是缺點也是優點吧。說它是缺點是因為還需要我們自己寫 SQL,優點呢就是我們可以對 SQL 進行定製化,比較自由。而且現在有很多外掛可以實現對定義好的資料庫自定義生成對應的 SQL,如果有自定義 SQL 的需求,只要在 XML 檔案中修改就好。總之,它方便了我們對資料庫的操作。
上面介紹的 Spring、SpringMVC和Mybatis就是常用的SSM框架集。
SpringBoot
Spring全家桶之一的SpringBoot,是一個快速開發的框架,透過引入專案依賴快速引入第三方框架,並且它透過引入大量的註解來簡化XML的配置。它的主要功能就是為了簡化開發過程中的成本,快速引入依賴、簡化因使用配置帶來的複雜度、簡潔打包執行,一個字就是快!
SpringCloud
SpringCloud框架為構建分散式系統提供了一套完整的微服務解決方案,它提供瞭如下元件:
Eureka:用於服務的註冊發現;Ribbon/Feign:提供負載均衡;Hystrix:防止過載的斷路器;Config:配置中心;Zuul:閘道器。SpringCloud不斷在完善及增加這些功能,是一個開發過程中的利器。
Dubbo
Dubbo是阿里巴巴研發的一款開源的 RPC 遠端呼叫框架。現在很多公司都在使用微服務、分散式架構,也就是由之前的單體應用拆分成多個服務,然後服務之間進行呼叫。為了使消費端對服務端的呼叫透明化,就有了 RPC 框架,很多公司都在使用 Dubbo 來搭建微服務。
Dubbo 使用 SPI 機制實現了外掛的可插拔,你可以自由擴充套件它提供的功能。同時它還提供了豐富的協議支援、豐富的負載均衡策略。在最新的版本中,Dubbo 對非同步呼叫也做了很好的支援。總之,Dubbo 是一款優秀的 RPC 框架。
Netty
Netty是一個非同步驅動的網路應用框架,用於快速開發可維護、高效能的伺服器和客戶端。很多 RPC 框架的的通訊層都採用的是 Netty,上面介紹的 Dubbo 框架預設的 dubbo 協議就是採用 Netty 作為其通訊框架。
Netty 的高效能取決於其 I/O 模型和執行緒模型。I/O 模型採用了 I/O 多路複用,雖然也是呼叫 select 方法,雖然會阻塞執行緒,但不會阻塞 I/O ,它會同時檢查多個寫和多個讀,只有在有資料就緒時,才會呼叫真正的 I/O 操作。
Netty 還解決了粘包/拆包問題,還支援零複製等等。
總之,Netty 是一個高效能的網路框架。
SkyWalking
SkyWalking是一個APM(Application Performance Management,應用效能管理) 框架,在微服務盛行的時代,它可以做到服務呼叫鏈路的追蹤,是一個監控服務效能的利器。
SkyWalking 基於 OpenTracing 規範,Java 探針採用了位元組碼增強技術實現,對業務程式碼無侵入,而且社群非常活躍,支援多語言,是一款很好的 APM 框架。
ZooKeeper
ZooKeeper是一個分散式協調框架,提供統一命名服務、配置管理、資料釋出/訂閱、負載均衡、分散式協調/通知、分散式鎖等分散式的基礎服務。ZooKeeper 採用了 ZAB 協議來解決分散式資料的一致性。在應用方面,Dubbo 的服務註冊中心就是採用的 ZooKeeper,其用途也是非常廣泛。
canal
canal也是阿里巴巴研發的一款基於 MySQL 資料庫增量日誌解析的框架,主要提供增量資料訂閱和消費。canal 的工作原理是模擬 MySQL slave 的互動協議,偽裝自己是 MySQL 的 slave,向 master 傳送 dump 協議,等 master 收到 dump 協議後,會把 binlog 日誌傳給 canal ,然後 canal 就可以解析 binlog 日誌了。該框架一般用於同步 MySQL 的資料,現在還支援把訊息傳送到 Kafka 中,然後由使用方訂閱 topic 進行消費。
Vert.x
Vert.x是一款非同步框架,基於 Netty 實現,透過事件迴圈(Event Loop)來呼叫儲存在非同步任務佇列的任務,能夠極大地提高系統的吞吐量,它還有一個特點是無鎖化。
Elasticsearch
Elasticsearch是一款分散式可擴充套件的實時搜尋和分析引擎,底層基於 Lucene 開發。該框架可以用於分散式實時檔案儲存、分散式搜尋引擎等。Elaticsearch 的倒排索引被很多廣告公司用到了廣告庫檢索上,同時 Elaticsearch + Logstash + Kibana 可以搭建日誌分析系統,即 ELK。
非Java語言開發的框架Redis
Redis是一款基於C語言開發的 key-value 儲存系統,一般用作快取、分散式鎖、訊息佇列,也支援持久化資料到磁碟上。
Redis 支援多種資料型別,例如字串、雜湊、列表、集合和有序集合、點陣圖、HyperLogLog 等型別。
Redis 支援 RDB 和 AOF 兩種持久化方式,也有對鍵的過期策略。Redis 還支援事務、LUA 指令碼等特性。
Redis 透過 Redis Sentinel 提供高可用,透過 Redis Cluster 提供自動分割槽。
Redis 在工作中常用於實現分散式快取和分散式鎖。
-
20 # 奮鬥的小路
1.SSH框架組合
SSH框架組合主要包括Struts 、Spring、Hibernate三大框架,用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支援,同時用Spring來管理Struts和Hibernate
2.SSM
框架組合另外一個比較流行的框架組合是SSM框架,主要包括SpringMVC、Spring、Mybatis三大框架,用SpringMVC作為整體基礎框架,分離MVC層級,Mybatis作為跟資料庫互動的持久層框架,負責資料的訪問和操作,而Spring依然作為其餘兩大框架的橋樑,進行資料的傳遞和事務等邏輯處理
3.spring boot框架
Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。用我的話來理解,就是 Spring Boot 其實不是什麼新的框架,它預設配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架
回覆列表
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.綜合專案——綜合應用提高班的技術開發一個基於微服務架構的移動商城系統。