好程序員Java教程分享javaweb框架:Java是開源的,框架不少,這些框架都能解決特定的問題,提升開發效率、簡化咱們的代碼複雜度,如今除了不少你們通用的一些主流框架外,不少公司針對本身的業務會自定義一些公司內部的框架,固然做爲學習者咱們首先要清楚最流行的javaweb框架有哪些?前端
回答這個問題首先要看咱們的項目規模,對於」體量」較小的單應用項目,和須要處理海量數據、高併發的分佈式項目所學習使用的框架仍是不一樣的。vue
對於「體量」較小的單應用項目:java
ORM型框架,不少Javaweb程序都須要使用關係數據庫來進行數據的持久化,因此對於這種須要進行數據庫操做的框架,也就是對JDBC進行封裝的ORM框架是須要學習的,目前比較流行的是基於SQL的mybatis框架,這是一個輕量級的ORM框架,學習使用起來比較容易上手,同類型的還有Hibernate框架。程序員
MVC型框架,MVC把程序從邏輯上分爲視圖層、控制層、模型層,各層各司其職,之間是相互調用的關係而不是相互依賴的關係,這種模式能很好的適應需求的變化及軟件的升級變動。目前應用較多的MVC框架是springMVC框架,這個框架有清晰的角色劃分,有強大而直接的配置方式,高效的綁定和驗證等不少優點。較早的Struts2框架也是MVC框架。web
Spring框架,其實Java的從業者不少都繞不開Spring,Spring家族有不少「工具」,編程思想從面相過程到面相對象是一個巨大的進步,然而隨着程序愈來愈複雜,對象愈來愈多,高效的「管理」及應用這些對象變得愈來愈重要,Spring的IoC就是把對象的建立、「管理」交由Spring容器來進行,來實現控制反轉,同時提供了各類注入值(DI)的方式,大大提升和簡化了咱們的工做,這就是javaweb須要學習的spring的IoC/DI;咱們程序的業務比較複雜時,除了要完成核心功能外,還須要完成注入異常處理、日誌記錄、事務處理等常規功能,這些常規的操做比較耗費精力,springAOP(面向切面編程)就是解決這個問題的。算法
Javaweb須要學習一些前端框架,尤爲是問題中提到的已經寫好了數據接口,或者是已經有了簡單的後臺,前端框架jQuery是必定要學習的,若是項目基於效率考慮,須要先後端分離,能夠學習vue等框架。spring
對於海量數據、高併發類型的分佈式項目,這種類型項目的特色就是前面提到的須要處理的數據量大,例如雙十一阿里須要處理的訂單數據,好比12306的搶票等。數據庫
提高查詢效率的緩存數據庫框架Redis,這個框架在單應用程序中爲了提高數據的讀取效率也可使用,先把數據從關係數據庫經過Redis存放到緩存中,從緩存中讀取數據的速度比直接從硬盤上讀取就要高多了,另外Redis還能進行集羣配置主從服務器等,使用很是方便,同類型的還有memcached框架;編程
在分佈式中,服務集羣中的負載均衡特別重要,Nginx是一個高性能的HTTP和反向代理服務框架,支持多種負載均衡算法;後端
消息隊列框架:RabbitMQ、ActiveMQ、RocketMQ等,在電商系統中,當結算訂單後,須要進行積分的變化等操做,這些操做的量很大,若是等積分變化結束後在通知用戶結算成功,顯然不可行,那麼此時積分的變動操做交由消息隊列來完成。
搜索框架,爲了提高搜索的效率,建立搜索索引庫及中文搜索分詞等,可使用solr框架,同類型的還有ElasticSearch
用於文件使用的分佈式文件系統框架Fastdfs
Springboot框架,簡化了spring的複雜配置,提供了Thymeleaf模板,不少微服務都是基於Springboot的;
微服務框架,把應用拆分紅若干個爲服務後,很好的適用了高併發及海量數據的處理,可是微服務的管理也很重要,目前基於服務註冊、服務監控的框架有Dubbo+zookeeper,還有SpringCloud,裏面包括SpringCloudEureka,SpringCloudRibbon,SpringCloudFeign,SpringCloudHystrix,SpringCloudZuul,SpringCloudConfig,SpringCloudZipKin,SpringCloudSleuth等;
其它框架,還有不少根據項目特定要求的一些框架,例如進行日誌記錄的log4j框架,進行認證和受權的shiro框架,工做流處理的Activite框架等。
總結一下:學習框架最好的方式就是在實際項目中去應用,這對框架的原理、應用流程都能有很好的學習效果,若是單純的作一些簡單的Demo,框架的不少應用場景、優化、注意事項等是學習不全面的。