Spring 學習教程(五):快速入門


認識 Spring 框架

Spring 框架是 Java 應用最廣的框架,它的成功來源於理念,而不是技術本身,它的理念包括 IoC (Inversion of Control,控制反轉) 和 AOP(Aspect Oriented Programming,面向切面編程)

什么是 Spring:

  1. Spring 是一個輕量級的 DI / IoC 和 AOP 容器的開源框架,來源於 Rod Johnson 在其著作《Expert one on one J2EE design and development》中闡述的部分理念和原型衍生而來。
  2. Spring 提倡以“最少侵入”的方式來管理應用中的代碼,這意味着我們可以隨時安裝或者卸載 Spring
  • 適用范圍:任何 Java 應用
  • Spring 的根本使命:簡化 Java 開發

盡管 J2EE 能夠趕上 Spring 的步伐,但 Spring 並沒有停止前進, Spring 繼續在其他領域發展,而 J2EE 則剛剛開始涉及這些領域,或者還沒有完全開始在這些領域的創新。移動開發、社交 API 集成、NoSQL 數據庫、雲計算以及大數據都是 Spring 正在涉足和創新的領域。Spring 的前景依然會很美好。

 

Spring 中常用術語:

  • 框架:是能完成一定功能半成品
    框架能夠幫助我們完成的是:項目的整體框架、一些基礎功能、規定了類和對象如何創建,如何協作等,當我們開發一個項目時,框架幫助我們完成了一部分功能,我們自己再完成一部分,那這個項目就完成了。
  • 非侵入式設計:
    從框架的角度可以理解為:無需繼承框架提供的任何類
    這樣我們在更換框架時,之前寫過的代碼幾乎可以繼續使用。
  • 輕量級和重量級:
    輕量級是相對於重量級而言的,輕量級一般就是非入侵性的、所依賴的東西非常少、資源占用非常少、部署簡單等等,其實就是比較容易使用,而重量級正好相反
  • JavaBean:
    符合 JavaBean 規范的 Java 類
  • POJO:即 Plain Old Java Objects,簡單老式 Java 對象
    它可以包含業務邏輯或持久化邏輯,但不擔當任何特殊角色不繼承或不實現任何其它Java框架的類或接口。

注意:bean 的各種名稱——雖然 Spring 用 bean 或者 JavaBean 來表示應用組件,但並不意味着 Spring 組件必須遵循 JavaBean 規范,一個 Spring 組件可以是任意形式的 POJO。

  容器:在日常生活中容器就是一種盛放東西的器具,從程序設計角度看就是裝對象的的對象,因為存在放入、拿出等操作,所以容器還要管理對象的生命周期

Spring 的優勢

  • 低侵入 / 低耦合 (降低組件之間的耦合度,實現軟件各層之間的解耦)
  • 聲明式事務管理(基於切面和慣例)
  • 方便集成其他框架(如MyBatis、Hibernate)
  • 降低 Java 開發難度
  • Spring 框架中包括了 J2EE 三層的每一層的解決方案(一站式)

Spring 能幫我們做什么

①.Spring 能幫我們根據配置文件創建及組裝對象之間的依賴關系
②.Spring 面向切面編程能幫助我們無耦合的實現日志記錄,性能統計,安全控制。
③.Spring 能非常簡單的幫我們管理數據庫事務
④.Spring 還提供了與第三方數據訪問框架(如Hibernate、JPA)無縫集成,而且自己也提供了一套JDBC訪問模板來方便數據庫訪問。
⑤.Spring 還提供與第三方Web(如Struts1/2、JSF)框架無縫集成,而且自己也提供了一套Spring MVC框架,來方便web層搭建。
⑥.Spring 能方便的與Java EE(如Java Mail、任務調度)整合,與更多技術整合(比如緩存框架)

Spring 的框架結構

  • Data Access/Integration層包含有JDBC、ORM、OXM、JMS和Transaction模塊。
  • Web層包含了Web、Web-Servlet、WebSocket、Web-Porlet模塊。
  • AOP模塊提供了一個符合AOP聯盟標准的面向切面編程的實現。
  • Core Container(核心容器):包含有Beans、Core、Context和SpEL模塊。
  • Test模塊支持使用JUnit和TestNG對Spring組件進行測試。

Spring IoC 和 DI 簡介

IoC:Inverse of Control(控制反轉)

  • 讀作“反轉控制”,更好理解,不是什么技術,而是一種設計思想,就是將原本在程序中手動創建對象的控制權,交由Spring框架來管理。
  • 正控:若要使用某個對象,需要自己去負責對象的創建
  • 反控:若要使用某個對象,只需要從 Spring 容器中獲取需要使用的對象,不關心對象的創建過程,也就是把創建對象的控制權反轉給了Spring框架
  • 好萊塢法則:Don’t call me ,I’ll call you

一個例子

控制反轉顯然是一個抽象的概念,我們舉一個鮮明的例子來說明。

在現實生活中,人們要用到一樣東西的時候,第一反應就是去找到這件東西,比如想喝新鮮橙汁,在沒有飲品店的日子里,最直觀的做法就是:買果汁機、買橙子,然后准備開水。值得注意的是:這些都是你自己“主動”創造的過程,也就是說一杯橙汁需要你自己創造。

然而到了今時今日,由於飲品店的盛行,當我們想喝橙汁時,第一想法就轉換成了找到飲品店的聯系方式,通過電話等渠道描述你的需要、地址、聯系方式等,下訂單等待,過一會兒就會有人送來橙汁了。

 

請注意你並沒有“主動”去創造橙汁,橙汁是由飲品店創造的,而不是你,然而也完全達到了你的要求,甚至比你創造的要好上那么一些。

編寫第一個 Spring 程序

  1. 新建一個空的 Java 項目,命名為【spring】
  2. 新建一個名為【lib】的目錄,並添加進必要的 jar 包,導入項目

 僅僅為一部分,下方還有一些包

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

參考:

https://www.cnblogs.com/wmyskxz/p/8820371.html
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM