原创 Spring源代碼分析之Spring MVC與Web環境

1 IOC是一個獨立的模塊,它是與Web容器啓動過程中集成在一起的。在Web容器的啓動過程中,一方面處理Web容器的啓動,另一方面通過設計特定的We

原创 Spring資源訪問器

  Spring爲訪問底層的資源提供了一個很強大的接口---Resource     boolean exists() 資源是否存在     boolean isOpen()   判斷是否打開     URL getURL() throw

原创 設計模式之單例模式

Singleton單類模式是最簡單的設計模式,它的主要作用是保證在程序運行生命週期中,使用了單類模式的類只能有一個實例對象存在。 單類模式有兩種實現方式:飽漢模式和餓漢模式,如下: 飽漢單例模式 public class Singleto

原创 設計模式之模板方法模式

  模板方法模式是類的行爲模式。準備一個抽象類,將部分邏輯以具體的方法以及具體構造函數的形式實現,然後聲明一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實心這些抽象方法,從而對剩餘的邏輯有不同的實現。這就是模板方法的用意

原创 Java基礎知識之註解Annotation

1 註解的概念 註解Annotation是JDK 5.0之後推出的一個新的特新,註解是Java的一個新特性,和類,接口,枚舉在同一層次上。主要作用是文檔編制,編譯檢查,代碼分析。 元數據:Java的註解,數據的數據 2 JDK的基本註解

原创 設計模式之Prototype模式

Prototype模式是指利用原型實例來指定創建對象的種類,並通過拷貝這些原型來創建新的對象。 //抽象原型類 abstract class Shape implements Colneable{ String shapeName;

原创 Spring源代碼分析之Spring MVC之HanderMapping請求映射處理

AbstractHandlerMappig調用getHandler() /** * Look up a handler for the given request, falling back to the default * h

原创 BeanFactory和FactoryBean的區別

1 BeanFactory接口     BeanFactory定義了IOC容器的最基本形式,並提供了IOC容器應遵守的的最基本的接口,也就是Spring IOC所遵守的最底層和最基本的編程規範。在 Spring代碼中,BeanFacto

原创 Spring源代碼分析之依賴注入

//獲取IoC容器中指定名稱的Bean public Object getBean(String name) throws BeansException { //doGetBean纔是真正向IoC容器獲取被管理Bean的過程 re

原创 spring源代碼分析之AOP面向切面編程

1 AOP概念 Aspect-Oriented Programming ,指的是面向切面編程。Aspect是一種新的模塊化機制,用來描述分散在對象,類或者函數中的橫切關注點。從關注點分散出橫切關注點是面向切面程序設計的核心概念。分離點使得

原创 Spring源代碼分析之事務

Spring提供一流的事務管理,分爲聲明式事務和編程式事務。 1 Spring的事務 事務是一組任務組成的工作單元,執行的結果是要麼全部執行,要麼都不執行。 Spring事務的優點:  提供統一的編程模式  提供更簡單,更易用的事務管理 

原创 設計模式之代理Proxy模式

Proxy代理設計模式是一種控制對象訪問的方式,類似於網絡代理,網絡代理圖如下: Proxy代理模式如下: 代理模式UML圖如下: 客戶端程序通過代理程序來訪問真正的目標程序,代理程序對外隱藏了目標程序。普通代理設計模式例子代碼如下

原创 Spring源代碼分析之Spring JDBC

1 JdbcOperations接口提供了對數據庫的基本操作 public interface JdbcOperations { <T> T execute(ConnectionCallback<T> action) throws Dat

原创 設計模式之command命令模式

1 命令模式的概念 命令模式是對命令的封裝。命令模式把發出命令的責任和執行命令的責任分割開,委派給不同的對象。 每一個命令都是一個操作:請求的一方發出請求要求執行一個操作;接收的一方收到請求,並執行操作。命令模式允許請求的一方和接收的一方

原创 Java內部類訪問局部變量時的final問題

    內部類訪問局部變量的情況也沒少遇到。也一直知道要給變量加個final修飾符,不然通過不了編譯。但一直也沒深究過爲什麼要加。昨天好奇的上網查了下,並翻閱了下相關的書籍(Core Java 8th),終於算是搞明白了,在這裏簡單說明