Javaweb都有哪些框架需要學習?
Java是開源的,框架很多,這些框架都能解決特定的問題,提高開發效率、簡化我們的程式碼複雜度,現在除了很多大家通用的一些主流框架外,很多公司針對自己的業務會自定義一些公司內部的框架,當然作為學習者我們首先要清楚Javaweb都有哪些框架需要學習。
回答這個問題首先要看我們的專案規模,對於”體量”較小的單應用專案,和需要處理海量資料、高併發的分散式專案所學習使用的框架還是不同的。
對於“體量”較小的單應用專案:
ORM型框架,很多Javaweb程式都需要使用關聯式資料庫來進行資料的持久化,所以對於這種需要進行資料庫操作的框架,也就是對JDBC進行封裝的ORM框架是需要學習的,目前比較流行的是基於SQL的mybatis框架,這是一個輕量級的ORM框架,學習使用起來比較容易上手,同型別的還有Hibernate框架。
MVC型框架,MVC把程式從邏輯上分為檢視層、控制層、模型層,各層各司其職,之間是相互呼叫的關係而不是相互依賴的關係,這種模式能很好的適應需求的變化及軟體的升級變更。目前應用較多的MVC框架是spring MVC框架,這個框架有清晰的角色劃分,有強大而直接的配置方式,高效的繫結和驗證等很多優勢。較早的Struts2框架也是MVC框架。
Spring框架,其實Java的從業者很多都繞不開Spring ,Spring家族有很多“工具”,程式設計思想從面相過程到面相物件是一個巨大的進步,然而隨著程式越來越複雜,物件越來越多,高效的“管理”及應用這些物件變得越來越重要,Spring的IoC就是把物件的建立、“管理”交由Spring容器來進行,來實現控制反轉,同時提供了各種注入值(DI)的方式,大大提高和簡化了我們的工作,這就是javaweb需要學習的spring的IoC/DI;我們程式的業務比較複雜時,除了要完成核心功能外,還需要完成注入異常處理、日誌記錄、事務處理等常規功能,這些常規的操作比較耗費精力,springAOP(面向切面程式設計)就是解決這個問題的。
Javaweb需要學習一些前端框架,尤其是問題中提到的已經寫好了資料介面,或者是已經有了簡單的後臺,前端框架jQuery是一定要學習的,如果專案基於效率考慮,需要前後端分離,可以學習vue等框架。
對於海量資料、高併發型別的分散式專案,這種型別專案的特點就是前面提到的需要處理的資料量大,例如雙十一阿里需要處理的訂單資料,比如12306的搶票等。
提升查詢效率的快取資料庫框架Redis,這個框架在單應用程式中為了提升資料的讀取效率也可以使用,先把資料從關聯式資料庫通過Redis存放到快取中,從快取中讀取資料的速度比直接從硬碟上讀取就要高多了,另外Redis還能進行叢集配置主從伺服器等,使用非常方便,同型別的還有memcached框架;
在分散式中,服務叢集中的負載均衡特別重要,Nginx是一個高效能的HTTP和反向代理服務框架,支援多種負載均衡演算法;
訊息佇列框架:RabbitMQ、ActiveMQ、RocketMQ等,在電商系統中,當結算訂單後,需要進行積分的變化等操作,這些操作的量很大,如果等積分變化結束後在通知使用者結算成功,顯然不可行,那麼此時積分的變更操作交由訊息佇列來完成。
搜尋框架,為了提升搜尋的效率,建立搜尋索引庫及中文搜尋分詞等,可以使用solr框架,同型別的還有ElasticSearch
用於檔案使用的分散式檔案系統框架Fastdfs
Spring boot框架,簡化了spring 的複雜配置,提供了Thymeleaf模板,很多微服務都是基於Springboot的;
微服務框架,把應用拆分成若干個為服務後,很好的適用了高併發及海量資料的處理,但是微服務的管理也很重要,目前基於服務註冊、服務監控的框架有Dubbo+zookeeper,還有SpringCloud,裡面包括SpringCloud Eureka,SpringCloud Ribbon,SpringCloud Feign,SpringCloudHystrix,SpringCloudZuul,SpringCloud Config,SpringCloud ZipKin,SpringCloud Sleuth等;
其它框架,還有很多根據專案特定要求的一些框架,例如進行日誌記錄的log4j框架,進行認證和授權的shiro框架,工作流處理的Activite框架等。
總結一下:學習框架最好的方式就是在實際專案中去應用,這對框架的原理、應用流程都能有很好的學習效果,如果單純的做一些簡單的Demo,框架的很多應用場景、優化、注意事項等是學習不全面的。
相關文章
- Linux運維學習需要多長時間?都有哪些學習方式?Linux運維
- APP測試需要注意點都有哪些?APP
- javaweb學習4JavaWeb
- 剛入門學習GO語言需要注意什麼?有哪些框架?Go框架
- JavaWeb 學習筆記JavaWeb筆記
- JavaWeb學習筆記JavaWeb筆記
- JavaWeb學習總結JavaWeb
- Java框架學習順序是哪些Java框架
- Java框架學習順序是哪些?Java框架
- 網路安全需要學習哪些技能?網路安全學習
- 學習Html5需要哪些基礎?HTML
- 哪些人需要學習Python開發?Python
- 學習Web前端需要避免哪些錯誤Web前端
- 學好UI設計,需要學習哪些軟體?UI
- 怎麼學好Java?需要學習哪些知識?Java
- java 版 SpringCloud 之目前得前端框架都有哪些?JavaSpringGCCloud前端框架
- Go語言開發的Web框架都有哪些?GoWeb框架
- 雲端計算學習網站都有哪些?學習雲端計算的方法學習網站
- web前端開發需要哪些工具和需要學習什麼?Web前端
- 作為一名後端開發者,你需要學習和掌握的技術棧都有哪些呢?後端
- javaweb學習之路(3)CookieJavaWebCookie
- javaweb學習之路(1)requestJavaWeb
- 入門 Web前端需要學習哪些技術?Web前端
- 學習K8S課程的都有哪些人?K8S學習K8S
- 敏捷開發框架有哪些?都有什麼特點敏捷框架
- web叢集都有哪些學習知識?Linux運維技術WebLinux運維
- 學習雲端計算好就業嗎?需要學習哪些知識?就業
- 高中生需要養成的學習習慣有哪些
- 大資料工程師需要學習哪些技術?大資料工程師
- Java程式設計師需要學習哪些知識?Java程式設計師
- 網路安全的學習,都需要掌握哪些技能?
- 學習軟體測試需要掌握哪些技術?
- 學習UI設計需要用到哪些工具UI
- 學習Python需要掌握哪些要點?Python基礎!Python
- 學習Java大資料都需要哪些基礎Java大資料
- 筆記-JavaWeb學習之旅17筆記JavaWeb
- jmeter學習指南之察看結果樹,你知道都有哪些功能嗎JMeter
- 新媒體運營都有哪些學習者?新媒體入門