Spring學習筆記之Spring概述

概述

  Spring是一個java應用最廣的開源框架,它是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著做Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是爲了解決企業應用開發的複雜性而建立的。框架的主要優點之一就是其分層架構,分層架構容許使用者選擇使用哪個組件,同時爲 J2EE 應用程序開發提供集成的框架。Spring使用基本的JavaBean來完成之前只可能由EJB完成的事情。然而,Spring的用途不只限於服務器端的開發。從簡單性、可測試性和鬆耦合的角度而言,任何Java應用均可以從Spring中受益。它的成功,來源於理念,而不是技術自己。它的理念包括IOC(Inversion Of Control,控制反轉)和AOP(Aspect Oriented Programming,面向切面編程)。簡單來講,Spring是一個分層的JavaSE/EE full-stack(一站式) 輕量級開源框架。java

優勢

方便解耦,簡化開發 (高內聚低耦合)

• Spring就是一個大工廠(容器),能夠將全部對象建立和依賴關係維護,交給Spring管理
• spring工廠是用於生成beanspring

AOP編程的支持

• Spring提供面向切面編程,能夠方便的實現對程序進行權限攔截、運行監控等功能編程

聲明式事務的支持

• 只須要經過配置就能夠完成對事務的管理,而無需手動編程api

方便程序的測試

• Spring對Junit4支持,能夠經過註解方便的測試Spring程序服務器

方便集成各類優秀框架

• Spring不排斥各類優秀的開源框架,其內部提供了對各類優秀框架的直接支持架構

下降JavaEE API的使用難度

• Spring 對JavaEE開發中很是難用的一些API(JDBC、JavaMail、遠程調用等),都提供了封裝,使這些API應用難度大大下降框架

Spring IoC簡介

  IoC是一個容器,在Spring中,他會認爲一切java資源都是java bean,容器的目標就是管理這些Bean和他們之間的關係。所以,Spring IOC裏面裝載的各類Bean,也能夠理解爲java的各類資源,包括Java bean的建立、事件、行爲等。除此以外,容器還會管理javaBean的各類依賴關係,好比老師和學生的教育與被教育的依賴關係。只是SpringIOC管理對象和其依賴關係,採用的不是認爲的主動建立,而是Spring IoC本身經過描述建立的。也就是說,Spring是依靠描述來完成對象的建立及其依賴關係的。socket

好比如今有一個接口Socket,其實現類爲Socket1。須要使用的話,代碼以下:學習

Socket socket = new Socket1();
user.setSocket(socket);
user.useSocket();

  假如項目比較大,有多處使用。有一天須要從新實現該接口,則須要修改大量的代碼。
  若是咱們使用配置的方式呢:測試

<bean id="socket" class="XXX.Socket1">
<bean id="user" class="XXX.User">
   <property name="socket" ref="socket"/>
</bean>

  若是有更好的實現,則只須要修改

<bean id="socket" class="XXX.Socket2">

Spring AOP簡介

java bean是面向對象(OOP)的基礎實際,但有些狀況是面向對象沒法處理的。
好比:
請假審批須要組長,經理,老闆的審批。在走到經理這裏,不一樣意,則整個審批應該是不經過的。這時候就須要把以前的審批做廢掉。
再好比:
轉帳:A轉給B1000元。如今A減小1000元,可是B增長1000元時發生了異常,這時候須要A減小1000元的操做也須要撤回才行。
這些整個操做至關於一個切面。咱們的目標是達標這些操做的一致性。
這些能夠用Spring AOP來解決。

private void transfer(int money){
  try{
    user1.reduce(money);
    user2.reduce(money);
    commit();
  }catch(Exception e){
    log.err(...);
    rollback();
  }
}

Spring AOP會自動將這個過程實現,咱們只須要關注業務代碼便可。
固然,實際遇到的問題要比這複雜得多,咱們須要慢慢來學習,深刻,去解決遇到的其餘問題。

你們有興趣也能夠關注個人公衆號查看文章。

------莫道君行早,更有早行人------
相關文章
相關標籤/搜索