1. 程式人生 > >Spring基礎筆記(一)--基本概念及模組

Spring基礎筆記(一)--基本概念及模組

Spring基礎筆記

基本概念

  • Spring是什麼?

    1. Spring開源的、輕量級的JavaSE(Java標準版本)/JavaEE(Java企業版本)開發應用框架,其目的是簡化應用程式開發;
    2. Spring框架是非侵入式的設計,無需繼承框架的任何類或實現任何介面,直接通過配置檔案配置即可;
  • Spring能幫我們做什麼?

    1. Spring能幫我們根據配置檔案或註解建立及組裝物件之間的依賴關係(IOC/DI);
    2. Spring面向切面程式設計(AOP)能幫助我們實現日誌記錄、效能統計、安全控制等功能;
    3. Spring能非常簡單的幫我們管理資料庫事務;
    4. Spring提供了與第三方資料訪問框架(如Hibernate、JPA)無縫整合,而且自己也提供了一套JDBC訪問模板,來方便資料庫訪問;
    5. Spring還提供與第三方Web(如Struts、JSF)框架無縫整合,而且自己也提供了一套Spring MVC框架,來方便web層搭建;
    6. Spring能方便的與Java EE(如Java Mail、任務排程)整合,與更多技術整合(比如快取框架);
  • Spring框架 架構圖

    Spring框架圖
    核心容器:包括Core、Beans、Context、EL模組;

    1. Core模組:封裝了框架依賴的最底層部分,包括資源訪問、型別轉換及一些常用工具類;
    2. Beans模組:提供了框架的基礎部分,包括反轉控制和依賴注入。其中Bean Factory是容器核心,本質是“工廠設計模式”的實現,而且無需程式設計實現“單例設計模式”,單例完全由容器控制,而且提倡面向介面程式設計,而非面向實現程式設計;所有應用程式物件及物件間關係由框架管理,從而真正把你從程式邏輯中把維護物件之間的依賴關係提取出來,所有這些依賴關係都由BeanFactory來維護;
    3. Context模組:以Core和Beans為基礎,整合Beans模組功能並新增資源繫結、資料驗證、國際化、Java EE支援、容器生命週期、事件傳播等;核心介面是ApplicationContext;
    4. EL模組:提供強大的表示式語言支援,支援訪問和修改屬性值,方法呼叫,支援訪問及修改陣列、容器和索引器,命名變數,支援算數和邏輯運算,支援從Spring 容器獲取Bean,它也支援列表投影、選擇和一般的列表聚合等;
    5. AOP模組:Spring AOP模組提供了符合 AOP Alliance規範的面向方面的程式設計(aspect-oriented programming)實現,提供比如日誌記錄、許可權控制、效能統計等通用功能和業務邏輯分離的技術,並且能動態的把這些功能新增到需要的程式碼中;這樣各專其職,降低業務邏輯和通用功能的耦合;