Spring系列(6)---總結(1)
Spring當然不僅僅只包括我們前面看到的這些技術,但其核心的思想主要是IOC+AOP這兩塊。在前面的幾塊中我們著重講了AOP,最後簡單介紹了一下IOC.這個系列介紹到這兒,基本涉及了Spring主要思想和技術,並建立了自己的一個簡單的AOP模型。
(一)我們首先來看看我們用到了那些關鍵性技術:
1) 動態編譯或IL指令注入
框架提供了這種技術的類庫支援,如果沒有這種庫的支援,要完成AOP程式設計,難度非常的大;
2) 元資料和反射機制
在IOC和AOP中都有用到,這已經是在.net framework程式設計中一個很重要的部分,要想更好,更深入的理解一些應用框架或者做一些高階應用本身都是不可或缺的。
(二)我們再看看用到了那些思想性的東西:
1)設計模式
設計模式當然是一種技術,但更多的是一種思想,或者方法論的東西,這也是我們學習設計模式最終應該達到的目的,就是學會一種解決問題的方法。在這個系列中,我們用到了工廠方法,裝飾模式(代理模式),觀察者模式;還涉及到了委託和事件。
2)配置化思想
在一些技術能夠支援的情況下,我們可以將一些邏輯通過配置資訊來表達,因為配置資訊不屬於程式程式碼本身,配置資訊的改變並不需要重新編譯程式。配置化思想反映的其實是一種動態化思想。在效能要求不是特別高,而需要更大靈活性的地方,這種思想非常有用。如前面的IOC,介面的動態佈局等。
3) 分而治之
採用這種策略思想,我們可以實現對複雜邏輯的簡化。分層,責任單一是這種思想的體現,面向物件分析與設計也是這種思想應用。
4)中介思想
如果要取得更大的靈活性,解耦AB之間的關係,一個非常有用的辦法就是增加一箇中介C,這就是中介思想。在這裡我之所以把這種方法提升為一種思想,其實無非就是要引起大家的重視,如果大家對設計模式非常瞭解的話,就應該發現,大部分的設計模式都利用了這種思想。
......未完待續.
相關推薦
Spring系列(6)---總結(1)
Spring當然不僅僅只包括我們前面看到的這些技術,但其核心的思想主要是IOC+AOP這兩塊。在前面的幾塊中我們著重講了AOP,最後簡單介紹了一下IOC.這個系列介紹到這兒,基本涉及了Spring主要思想和技術,並建立了自己的一個簡單的AOP模型。 (一)我們首先來看看
Spring-Batch學習總結(1)——重要概念,環境搭建,名詞解釋,第一個項目及異常處理
img truct 設定 uil sna sta col key services Spring-batch框架學習總結(1)一.初識Spring-batch框架:1.核心名詞解釋:Job:是Spring-batch框架的核心概念,它包含了批處理的所有操作Step:每一個J
Spring Boot學習總結(1)——Spring Boot入門
摘要:Spring Boots是為了幫助開發人員很容易的創建出獨立執行和產品級別的基於 Spring 框架的應用。 從 Spring Boot 專案名稱中的 Boot 可以看出來,Spring
從零寫Spring註解版框架系列 IoC篇 (1) 框架設計
本文的註解版IoC框架跟其他手寫IoC框架的不同之處在與:在實現了 @Component 和 @Autowired 的同時還實現了@Qualifier,並解決單例模式下迴圈依賴的問題,以上3個註解的使用效果參照 Spring 。 專案 Github 地址為:https://githu
Spring Cloud與微服務學習總結(1)——Spring Cloud及微服務入門
一、Spring Cloud是什麼鬼? Spring Cloud為開發者提供了快速建立一些常見的模式在分散式系統的工具(如配置管理、服務發現、斷路器、智慧路由、微代理,控制匯流排,一次性令牌,全球鎖,領
C++基礎系列之要點總結(1)
1. C++是一種靜態資料型別語言,它的型別檢查發生在編譯時。因此,編譯器必須知道程式中每一個變數對應的資料型別。相比於C,它的變數可以在使用時即時定義或宣告使用。這樣既可以更加方便地宣告變數,又由於變數宣告之處即為其使用的位置而能清楚地知道變數存在的意義。 2. 不能
Quartz學習總結(1)——Spring整合Quartz框架
一、Quartz簡介 Quartz是OpenSymphony開源組織在Job scheduling領域又一個開源專案,它可以與J2EE與J2SE應用程式相結合也可以單獨使用。Quartz可以用來建立簡單或為執行十個,百個,甚至是好幾萬個Jobs這樣複雜的程式。J
Spring原始碼深度解析總結(1)——XmlBeanFactory的結構組成
最近在讀《Spring原始碼深度分析》這本書,雖然講的是Spring3.0版本的東西,但是基本的思想還是相同的。所以我打算一邊讀一邊做一些總結,一方面在看過一邊之後再捋一遍整體的過程,另一方面也防止日後忘記某些東西無處可查。 在開始原始碼閱讀之前,我們首先要了解一下Spri
Spring boot 總結(1)---Spring-boot-starter-**依賴包說明
1. spring-boot-starter 是Spring Boot的核心啟動器,包含了自動配置、日誌和YAML。 2. spring-boot-starter-amqp 通過spring-rabbit來支援AMQP協議(Advanced Message Queuing P
曹工說Spring Boot原始碼系列開講了(1)-- Bean Definition到底是什麼,附spring思維導圖分享
寫在前面的話&&About me 網上寫spring的文章多如牛毛,為什麼還要寫呢,因為,很簡單,那是人家寫的;網上都鼓勵你不要造輪子,為什麼你還要造呢,因為,那不是你造的。 我不是要造spring,我只是想把自己學習spring的一些感想,一些心得說出來,希望大家看到有不對的地方,請一定不吝
ajax技術整理總結(1)
col () stat sta pre resp tel html func 1.創建ajax對象 var xhr=new XMLHttpRequest(); 4.監聽狀態信息 xhr.onreadystatechange=function(){ //4接收完畢
log4net 使用總結- (1)在ASP.NET MVC 中使用
站點 href 還需 配置文件 str nag org src stat 1. 去官網下載log4net.dll,增加引用到站點下(你也可以通過nuget 安裝) http://logging.apache.org/log4net/download_log4net.cgi
MEF學習總結(1)---總體架構
attr 總結 技術分享 dir target get gre round 管理 用了很久的MEF框架來做依賴註入,最近想把它的原理和機構總結一下,主要包括如下幾個方面: 1. 總體架構 2. .Net Composition Primitive 3. Attribu
總結(1)--- 數據庫
優點 分層 數據結構 存儲引擎 nsis tree 備份 可擴展 根節點 一、mysql 數據庫存儲的原理 存儲過程中是一個可編程的函數,它在數據庫中創建並保存。 它可以有SQL語句和一些特殊的控制結構組成。當希望在不同的應用程序或平臺上執行相同的函數,或者封裝特定功能
八大排序算法總結(1)
n-1 冒泡排序 int 排序算法 length != 位置 倒數 選擇 冒泡排序: 第一輪:從下標0到n-1(n 是數組長度),如果前一個元素比後一個元素大,那麽,相鄰的兩兩交換,最後數組中最大的元素放在最後一個位置上。 第二輪:從標0到n-2,重復上過程,這樣第二大的元
Linux查看日誌方法總結(1)
關鍵字 http grep 定時 abd cab 我們 做的 ext 註:日誌文件為:test.log 1.tail -f test.log 查看當前打印的日誌(平時就知道這方法!打印出的長度有限制。) 以下為網上搜集的: 2.先必須了解兩個最基本的命令: tai
Python筆記總結(1)
Language 界面 關系運算符 unp expect ber integer file back 一、變量在python中不需要為變量制定數據類型。可以單行定義多個變量。>>> a, b = 2, 3.4 >>> a 2 >&g
golong基礎知識總結(1)
import 調用 一個 需要 文件中 一個數 col 遍歷 print go語言結構 go語言的基礎組成:包聲明,引入包,函數,變量,語句和表達式,註釋 包聲明:一個文件夾下只能聲明一個包,否則就會報錯(即同一個文件夾下,可以有多個go文件,但這些文件聲明的包的名
leetcode刷題總結(1)
solution 遍歷 AC 復雜度 刷題 may example AR 記錄 1、Two Sum Given an array of integers, return indices of the two numbers such that they add up to
Hadoop架構的初略總結(1)
安全 use 請求 參考 內存 文件系統 href 獲得 監控 Hadoop架構的初略總結(1) Hadoop是一個開源的分布式系統基礎架構,此架構可以幫助用戶可以在不了解分布式底層細節的情況下開發分布式程序。 首先我們要理清楚幾個問題。 1.我們為什麽需要Hadoop