1. 程式人生 > >**Spring課堂記錄**

**Spring課堂記錄**

有關jar包:四個基礎包和一個依賴包 4+1
1、spring-core-4.3.6.RELEASE.jar
包含Spring框架的核心工具類,Spring其它元件都要用到這個包裡的類。

2、spring-beans-4.3.6.RELEASE.jar
所有應用都要用到的JAR包,它包含訪問配置檔案、建立和管理Bean以及進行控制反轉或者依賴注入操作相關的所有類。

3、spring-context-4.3.6.RELEASE.jar
提供了在基礎IoC功能上的擴充套件服務,還提供了許多企業級服務的支援

4、spring-expression-4.3.6.RELEASE.jar
定義了Spring的表示式語言。

5、依賴包-------在使用Spring開發時,除了要使用自帶的JAR包外,Spring的核心容器還需要依賴commons.logging的JAR包。

一、Spring的核心是IOC(控制反轉)AOP(面向切面程式設計)

Spring模組:

核心容器提供 Spring 框架的基本功能(Spring Core),包括IOCDI功能。
IOC:控制反轉—自己需要的物件由別人建立(別人是指Spring框架)
DI:依賴注入—自己需要使用的物件由別人提供(別人是指Spring框架)

核心容器又分為BeanFactory和ApplicationContext

核心容器的主要元件是 BeanFactory

,它是工廠模式的實現,作為IOC容器管理Bean。
BeanFactory 使用IOC模式將應用程式的配置和依賴性規範與實際的應用程式程式碼分開,將類和類之間的依賴從程式碼中脫離出來,用配置的方式進行依賴關係描述,由IoC容器負責依賴類之間的建立、拼接、管理、獲取等工作。 BeanFactory介面是Spring框架的核心介面,實現了容器的許多核心功能。

上下文
Context模組構建與核心模組之上,擴充套件BeanFactory的功能,提供了許多企業服務,例如JNDI、EJB、電子郵件、國際化、校驗和排程功能。ApplicationContext是Context模組的核心介面。

AOP(面向切面程式設計)

資料訪問物件(Spring Dao)

物件關係對映(Spring ORM)

Spring Web(web及遠端操作)

Spring Web MVC
Spring提供了MVC框架,稱為Spring MVC。

關於控制反轉和依賴注入
IOC是讓生成類的方式由傳統方式(new)反過來,既程式設計師不呼叫new,需要類的時候由框架注入(DI),是同一件不同層面的解讀。
IoC主要的實現方式有兩種:依賴查詢,依賴注入。依賴注入是一種更可取的方式。
依賴注入(Dependency Injection . DI ) :IOC是目的,DI則是手段。IoC容器實際上是一個DI框架。

AOP術語

切面(Aspect):橫切關注點(跨越應用程式多個模組的功能)被模組化的特殊物件
通知(Advice):切面必須要完成的工作
目標(Target):被通知的物件
代理(Proxy):向目標物件應用通知之後建立的物件
連線點(Joinpoint):程式執行的某個特定位置
連線點由兩個資訊確定:方法表示的程式執行點;相對點表示的方位
切點(pointcut):每個類都有多個連線點(連線點四程式類中客觀存在的事務)
AOP通過切點定位到特定的連線點
連線點相當於資料庫中的記錄,切點相當於查詢條件

18.10.09
Spring中的Bean

如果把Spring看作一個工廠,則容器中的Bean就是該工廠的產品

Appilication物件的時候就是工廠開始加工的時候
ApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”);

Bean的例項化方式:構造器例項化、靜態工廠方式例項化和例項工廠方式例項化

id是唯一標識,只能有一個,name可以有多個

Bean的裝配方式:基於XML的裝配、基於註解(Annotation)的裝配和自動裝配(其中最常用的是基於註解的裝配。

(寫的是原始檔,執行的是編譯後的檔案)

基於Annotation的裝配

主要註解:
@Component:用於描述Spring中的Bean,它是一個泛化的概念,僅僅表示一個元件。
@Repository:用於將資料訪問層(DAO)的類標識為Spring中的Bean 。
@Service:用於將業務層(Service)的類標識為Spring中的Bean。
@Controller:用於將控制層(Controller)的類標識為Spring中的Bean 。

@Autowired:用於對Bean的屬性變數、屬性的setter方法及構造方法進行標註,配合對應的註解處理器完成Bean的自動配置工作。
@Resource:其作用與Autowired一樣。@Resource中有兩個重要屬性:name和type。Spring將name屬性解析為Bean例項名稱,type屬性解析為Bean例項型別。
@Qualifier:與@Autowired註解配合使用,會將預設的按Bean型別裝配修改為按Bean的例項名稱裝配,Bean的例項名稱由@Qualifier註解的引數指定。(是相當於重新命名功能,一般直接使用Autowired)