歡迎光臨
每天分享高質量文章

Spring AOP 的實現原理 | 15 篇熱文回顧

(點選上方公眾號,可快速關註)


本文精選了 ImportNew 2018年1月份的15篇熱門文章。其中有技術分享,行業資訊和麵試經驗。


註:以下文章,點選標題即可閱讀



《 Spring AOP 的實現原理


AOP(Aspect Orient Programming),我們一般稱為面向方面(切麵)程式設計,作為面向物件的一種補充,用於處理系統中分佈於各個模組的橫切關註點,比如事務管理、日誌、快取等等。AOP實現的關鍵在於AOP框架自動建立的AOP代理,AOP代理主要分為靜態代理和動態代理,靜態代理的代表為AspectJ;而動態代理則以Spring AOP為代表。本文會分別對AspectJ和Spring AOP的實現進行分析和介紹。



通向架構師的道路(第一天)之 Apache 整合 Tomcat


這是一個通用的Web即B/S工程的架構,它由:Web Server,App Server和DB Server三大部分組成。Web Server置於企業防火牆外,這個防火牆,大家可以認為是一個CISCO路由器,然後在CISCO路由器上開放了兩個埠為:80和443。



關於Java 面試,你應該準備這些知識點


馬老師說過,員工的離職原因很多,只有兩點最真實:錢,沒給到位;心,受委屈了。當然,我是想換個平臺,換個方向,想清楚為什麼要跳槽,如果真的要跳槽,想要拿到一個理想的offer,除了運氣,基本功也要足夠的扎實,希望下麵的面試經驗能給你們能夠提供一些幫助。



商業專案中最受歡迎的 7 種程式語言,Java 上榜


Semaphore 是一個國外持續整合/持續部署方案服務商。Semaphore 稱自己在過去三年對其開發者使用者進行調查,調查他們在開發商業專案時一般都使用哪些語言。這些資料基於成千上萬個在 Semaphore 上進行測試和部署的專案的人。所以現在這是迄今為止關於商業專案中最受歡迎的開源程式語言的全面報告。



大型網站系統與 Java 中介軟體實踐


分散式系統的定義:元件分佈在網路計算機上,元件間僅僅透過訊息傳遞來通訊並協調行動。分散式系統的意義:升級單機處理能力的價效比越來越低,單機處理能力存在瓶頸和處於穩定性和可用性的考慮。



三張圖徹底瞭解 Java 中字串的不變性 


一旦一個string物件在記憶體(堆)中被創建出來,他就無法被修改。特別要註意的是,String類的所有方法都沒有改變字串本身的值,都是傳回了一個新的物件。如果你需要一個可修改的字串,應該使用StringBuffer 或者 StringBuilder。否則會有大量時間浪費在垃圾回收上,因為每次試圖修改都有新的string物件被創建出來。



《 一個正則式引發的血案


我從來沒有想到我可以看到一個差勁的正則式造成一臺伺服器沒有響應。但它偏偏就在我們的一個伺服器上面發生了,結果導致了它毫無響應。假設我們在解析一些外部汽車經銷商的資訊。我們想在各種各樣的輸入中找到那些帶”no 



《 如何編寫相對標準的後端專案 (一)組織與執行


本人接觸過數個 Open Source 專案,如 OpenStack/Kubernetes 等,深感這些優秀的開源專案存在著一些共性,如:美觀的程式碼,完整的測試,設計理念,框架和架構等等。一般來說,遵循這些優良原則的專案在易讀性,可維護性,特別是(功能和規模的)可擴充套件性會更強些。



《 深入 Spring Boot:那些註入不了的 Spring 佔位符 ( ${} 運算式 )


Spring應用在有時會出現佔位符配置沒有註入,原因可能是多樣的。本文介紹兩種比較複雜的情況。



Java8 Map 示例:一個略複雜的資料對映聚合例子及程式碼重構


本文內容來自真實的工作案例,因其轉換略複雜,且有一定意義,故記錄之。



JVM 堆記憶體和非堆記憶體


按照官方的說法:“Java 虛擬機器具有一個堆(Heap),堆是執行時資料區域,所有類實體和陣列的記憶體均從此處分配。堆是在 Java 虛擬機器啟動時建立的。”“在JVM中堆之外的記憶體稱為非堆記憶體(Non-heap memory)”。JVM主要管理兩種型別的記憶體:堆和非堆。



你真的瞭解volatile關鍵字嗎 


Java記憶體模型規定了所有的變數都儲存在主記憶體中。每條執行緒中還有自己的工作記憶體,執行緒的工作記憶體中儲存了被該執行緒所使用到的變數(這些變數是從主記憶體中複製而來)。執行緒對變數的所有操作(讀取,賦值)都必須在工作記憶體中進行。不同執行緒之間也無法直接訪問對方工作記憶體中的變數,執行緒間變數值的傳遞均需要透過主記憶體來完成。



lambda 運算式和閉包


熟悉的Javascript或者Ruby的同學,可能對另一個名詞:閉包更加熟悉。因為一般閉包的示例程式碼,長得跟lambda差不多,導致我也在以前很長一段時間對這兩個概念傻傻分不清楚。其實呢,這兩個概念是完全不同維度的東西。



Java LinkedHashMap 原始碼解析


HashSet 內部用一個HashMap物件儲存資料,更具體些,只用到了key,value全部為一dummy物件。HashSet這個類太簡單了,我不打算單獨寫文章介紹。今天介紹個比較實用的類——LinkedHashMap。



探索各種隨機函式 ( Java 環境 ) 


本文將主要分析Netty實現方面的東西。對於Netty使用者來說,Netty提供了幾個典型的example,並有詳盡的API doc和guide doc,本文的一些內容及圖示也來自於Netty的檔案,特此致謝。


往期熱文回顧

12月:《 沒有 Redis 也能支撐 “ 小米在印度把亞馬遜搞掛了 ” 事件的秒殺解決方案 | 15 篇熱文回顧

8月:《 高併發下的下單功能設計:15 篇熱文回顧 》

7月:《 簡述 Docker :15 篇熱文回顧 》

6月:《 Kafka 基本原理 :15 篇熱文回顧 》

5月:《 Java 之父加入 AWS :15 篇熱文回顧 》


看完本文有收穫?請轉發分享給更多人

關註「ImportNew」,提升Java技能

贊(0)

分享創造快樂