首先,SpringMVC
第二,春天
第三,Mybatis
第四,杜博
動詞 (verb的縮寫)專家
六、RabbitMQ
七、Log4j
八、Ehcache
九。雷迪斯
X.四郎
延伸閱讀:
首先,SpringMVC
Spring web MVC是壹個基於Java的輕量級web框架,實現了請求驅動型的web MVC設計模式。即使使用MVC架構模式的思想來分離Web層的職責,請求驅動也意味著使用請求-響應模型。框架的目的是幫助我們簡化開發,Spring Web MVC也是為了簡化我們日常的Web開發。
該模型封裝了應用程序的數據以及它們通常將形成的POJO。
視圖負責呈現模型數據和由它生成的HTML輸出,可以由客戶機的瀏覽器解釋。
控制器負責處理用戶的請求,建立合適的模型並將其傳遞給視圖渲染。
Spring的web模型-視圖-控制器(MVC)框架圍繞著處理所有HTTP請求和響應的DispatcherServlet的設計。
Spring Web MVC處理請求的過程
具體實施步驟如下:
1.首先,用戶發送請求->;前端控制器,根據請求信息(如URL)決定選擇哪個頁面控制器進行處理,並將請求委托給它,即前壹個控制器的控制邏輯部分;圖2-1中的步驟1和2;
2.在接收到請求之後,頁面控制器執行功能處理。首先,它需要收集請求參數並將其綁定到壹個對象上,這個對象在Spring Web MVC中稱為command對象,並對其進行驗證,然後將command對象委托給業務對象進行處理。處理後返回壹個ModelAndView(模型數據和邏輯視圖名);圖2-1中的步驟3、4、5;
3.前端控制器收回控制權,然後根據返回的邏輯視圖名選擇相應的視圖進行渲染,並傳輸視圖渲染的模型數據;圖2-1中的步驟6和7;
4.前端控制器再次收回控制權,並將響應返回給用戶,如圖2-1第8步所示;這是整件事的結局。
第二,春天
2.1,IOC容器:blogs . com/linji Qin/archive/2013/11/04/3407126 . html。
IOC容器是壹個具有依賴註入功能的容器。IOC容器負責實例化、定位、配置應用程序中的對象,並建立這些對象之間的依賴關系。應用程序不需要直接在代碼中添加新的相關對象,應用程序由IOC容器組裝。BeanFactory是春天IOC容器的實際代表。
2.2、AOP:/more Evan/article/details/11977115
簡單來說就是封裝那些與業務無關,但被業務模塊調用的邏輯或職責,方便減少系統的重復代碼,降低模塊間的耦合性,有利於以後的可操作性和可維護性。AOP代表水平關系。
AOP用於封裝橫切關註點,可用於以下場景:
認證權限?
緩存緩存?
上下文傳遞內容交付?
錯誤處理錯誤處理?
懶裝懶裝?
調試調試?
記錄、跟蹤、剖析和監控記錄跟蹤優化校準?
性能優化性能優化?
堅持堅持?
資源池?
同步同步?
交易交易
第三,Mybatis
MyBatis是壹個優秀的持久性框架,支持普通的SQL查詢、存儲過程和高級映射。MyBatis消除了幾乎所有手動設置JDBC代碼和參數以及檢索結果集的工作。MyBatis使用簡單的XML或註釋進行配置和原始映射,並將接口和Java POJOs(普通舊Java對象)映射到數據庫中的記錄。
總體流程:
(1)加載配置並初始化?
觸發條件:加載配置文件?
將SQL的配置信息加載到MappedStatement對象中(包括傳入參數映射配置、執行的SQL語句和結果映射配置)並存儲在內存中。
(2)接收呼叫請求?
觸發條件:調用Mybatis提供的API?
傳入參數:SQL和傳入參數對象的ID?
處理:將請求傳遞給較低的請求處理層進行處理。
(3)處理操作請求的觸發條件:API接口層傳輸請求?
傳入參數:SQL的ID和傳入的參數對象。
處理過程:
(a)根據SQL的ID查找對應的MappedStatement對象。
(b)根據傳入參數對象解析MappedStatement對象,得到最終要執行的SQL和執行傳入參數。
(c)獲取數據庫連接,根據獲取的最終SQL語句和輸入參數執行數據庫,並獲取執行結果。
(d)根據MappedStatement對象中的結果映射配置對得到的執行結果進行轉換,得到最終的處理結果。
(e)釋放連接資源。
(4)返回處理結果,返回最終處理結果。
MyBatis最強大的特性之壹就是它的動態語句功能。如果妳以前使用過JDBC或者類似的框架,妳就會明白把SQL語句條件連接在壹起是多麽痛苦。確保不要忘記空格或省略列後的逗號。動態報表完全可以解決這些痛點。
第四,杜博
Dubbo是壹個分布式服務框架,致力於提供高性能、透明的RPC(遠程過程調用協議)遠程服務調用方案和SOA服務治理方案。簡單來說,dubbo就是壹個服務框架。如果沒有分布式的需求,其實沒必要。只有分布式的時候,才有像dubbo這樣的分布式服務框架的需求,本質上是服務調用。說白了就是遠程服務調用的分布式框架。
1,透明的遠程方法調用,就像調用本地方法壹樣,只需要簡單的配置,沒有任何API的侵入。
2.軟負載均衡和容錯機制可以在內網中替代F5等硬件負載均衡器,降低成本和單點。
3.服務是自動註冊和發現的,不再需要記下服務提供商的地址。註冊中心根據接口名稱查詢服務提供商的IP地址,可以平滑地添加或刪除服務提供商。
節點角色描述:?
提供者:公開服務的服務提供者。?
消費者:調用遠程服務的服務消費者。?
註冊表:服務註冊和發現的註冊表。?
Monitor:統計服務的調用次數和調用次數的監控中心。?
容器:服務運行容器。
動詞 (verb的縮寫)專家
Maven是壹個用於項目管理和構建的自動化工具,越來越多的開發者使用它來管理項目中的jar包。但是對於我們程序員來說,最關心的還是它的項目構造功能。
六、RabbitMQ
壹般來說,消息隊列提取壹個項目中壹些不需要立即返回的耗時操作,進行異步處理,大大節省了服務器的請求響應時間,從而提高了系統的吞吐量。
RabbitMQ是由Erlang實現的高度並發和可靠的AMQP消息隊列服務器。
Erlang是壹種動態函數式編程語言。與Erlang相對應,每個Actor對應壹個Erlang流程,流程之間通過消息傳遞進行通信。與* * *共享內存相比,進程間通過消息傳遞進行通信的直接好處是消除了直接鎖開銷(不考慮Erlang虛擬機底層實現中的鎖應用)。
AMQP(高級消息隊列協議)定義了消息系統規範。該規範描述了分布式系統中子系統如何通過消息進行交互。
七、Log4j
日誌記錄的優先級分為關閉、致命、錯誤、警告、信息、調試、全部或您定義的級別。
八、Ehcache
EhCache是壹個純Java的進程內緩存框架,快速且精簡,是Hibernate中默認的CacheProvider。Ehcache是壹個廣泛使用的開源Java分布式緩存。主要針對通用緩存、Java EE和輕量級容器。它具有內存和磁盤存儲、緩存加載器、緩存擴展、緩存異常處理程序、gzip緩存servlet過濾器以及對REST和SOAP api的支持等特性。
優點:?
1,快?
2.簡單?
3.各種緩存策略?
4.緩存數據有兩級:內存和磁盤,不用擔心容量?
5.虛擬機重啟時緩存的數據會寫到磁盤嗎?
6.可以通過RMI、可插拔API等進行分布式緩存嗎?
7.帶有緩存和緩存管理器的監聽接口?
8.支持多個緩存管理器實例和壹個實例的多個緩存區?
9.提供Hibernate的緩存實現。
缺點:?
1,使用磁盤緩存時,占用大量磁盤空間:這是因為disk Cache的算法簡單,這也導致了緩存的高效性。它只是直接將存儲追加到元素中。所以對元素的搜索速度非常快。如果使用DiskCache,在頻繁的應用中,磁盤很快就會滿。
2.數據安全無法保證:java突然被殺,可能會發生沖突。EhCache的解決方案是在文件沖突時重建緩存。當需要保存緩存數據時,這可能是不利的。當然,緩存只是簡單的加速,並不能保證數據的安全性。如果想保證數據存儲的安全性,可以使用Bekeley DB Java Edition版本。這是壹個嵌入式數據庫。可以保證存儲安全性和空間利用率。
九。雷迪斯
Redis是壹個鍵值存儲系統。類似於Memcached,支持更多類型的存儲值,包括string(字符串)、list(鏈表)、set(集合)、zset(有序集——有序集)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove、union和difference集合的交集和更豐富的操作,並且這些操作都是原子的。在此基礎上,redis支持多種方式的排序。與memcached壹樣,數據被緩存在內存中以確保效率。不同的是,redis會定期將更新的數據寫入磁盤或者對附加的記錄文件進行修改操作,並在此基礎上實現主從同步。
Redis數據庫完全在內存中,磁盤只用於持久化。與許多鍵值數據存儲相比,Redis擁有更豐富的數據類型。Redis可以將數據復制到任意數量的從屬服務器上。
1.2,Redis優勢:
(1)極快:Redis非常快,每秒可以執行約110000組,每秒約81000+條記錄。
(2)支持豐富的數據類型:Redis支持大多數開發者已經知道的數據類型,比如列表、集合、有序集、hash。這使得解決各種問題變得非常容易,因為我們通過它知道哪些問題可以由數據類型更好地處理。
(3)所有操作都是原子性的:所有Redis操作都是原子性的,這就保證了如果兩個客戶端同時訪問Redis服務器,都會得到更新後的值。
(4)多功能實用程序:Redis是壹個多功能工具,可以用於多種應用,如緩存、消息、隊列(Redis原生支持發布/訂閱)、任何短壽命的數據、應用,如Web應用會話、網頁點擊計數等。
1.3,Redis缺點:?
(1)單線程?
(2)內存消耗
X.四郎
阿帕奇·希羅是Java的壹個安全框架,旨在簡化認證和授權。Shiro可以在JavaSE和JavaEE項目中使用。它主要用於處理認證、授權、企業會話管理和加密。Shiro的具體功能點如下:
(1)認證/登錄,驗證用戶是否具有相應的身份;
(2)授權,即權限驗證,驗證被認證的用戶是否具有壹定的權限;也就是判斷壹個用戶是否能做某件事,比如驗證壹個用戶是否有某個角色。或者對用戶是否對資源具有某種權利的細粒度驗證;
(3)會話管理,即用戶登錄後處於壹個會話中,退出前其所有信息都在該會話中;該會話可以在普通的JavaSE環境中,也可以在Web環境中。
(4)加密,保護數據的安全,如密碼加密存儲在數據庫中,而不是明文存儲;
(5)Web支持,可以很容易地集成到Web環境中;?
緩存:緩存,比如用戶登錄後,其用戶信息和角色/權限不用每次都檢查,可以提高效率;
(6)shiro支持多線程應用的並發驗證,即如果在壹個線程中啟動了另壹個線程,權限可以自動傳播;
(7)提供測試支持;
(8)允許壹個用戶假裝作為另壹個用戶訪問(如果他們允許的話);
(9)記住我,這是壹個很常見的功能,就是登錄壹次後,下次就不用登錄了。