慕課網_《Spring入門篇》學習總結

《Spring入門篇》學習總結

時間:2017年1月18日星期三
說明:本文部份內容均來自慕課網。@慕課網:http://www.imooc.com
教學示例源碼:https://github.com/zccodere/s...
我的學習源碼:https://github.com/zccodere/s...java

第一章:概述

1-1 Spring 入門課程簡介

本門課程包含的內容git

什麼是框架github

Spring簡介
IOC(配置、註解)
Bean(配置、註解)
AOP(配置、註解、AspetJ、API)

如何學習Springspring

掌握用法
深刻理解
不斷實踐
反覆總結
再次深刻理解與實踐

1-2 Spring概況

Spring是什麼編程

Spring是一個開源框架,爲了解決企業應用開發的複雜性而建立的,但如今已經不止應用於企業應用。
是一個輕量級的控制反轉(IOC)和麪向切面(AOP)的容器框架
--從大小與開銷兩方面而言Spring都是輕量的
--經過控制反轉(IOC)的技術達到鬆耦合的目的
--提供了面向切面編程的豐富支持,容許經過分離應用的業務邏輯與系統級服務進行內聚性的開發。
--包含並管理應用對象的配置和生命週期,這個意義上是一種容器。
--將簡單的組件配置、組合成爲複雜的應用,這個意義上是框架

爲何是Spring安全

在Spring上開發應用簡單
在Spring上開發應用方便
在Spring上開發應用快捷

Spring帶來了複雜JavaEE開發的春天框架

clipboard.png

Spring做用性能

容器
提供了多種技術的支持
    --JMS
    --MQ支持
    --UnitTest
AOP(事務管理、日誌等)
提供了衆多方便應用的輔助類(JDBC Template等)
對主流應用框架(Hibernate等)提供了良好的支持

適用範圍學習

構建企業應用(SpringMVC+Spring+Hibernate/MyBatis)
單獨使用Bean容器(Bean管理)
單獨使用AOP進行切面處理
其餘的Spring功能:如:對消息的支持等
在互聯網中的應用

1-3 Spring框架

框架ui

什麼是框架

clipboard.png

clipboard.png

爲何使用框架

軟件系統日趨複雜
重用度高,開發效率和質量提升
軟件設計人員要專一於對領域的瞭解,使需求分析更充分
易於上手、快速解決問題

第二章:Spring IOC容器

2-1 IOC及Bean容器

IOC

接口及面向接口編程
什麼是IOC
Spring的Bean配置
Bean的初始化
Spring的經常使用注入方式

接口

用於溝通的中介物的抽象化
實體把本身提供給外界的一種抽象化說明,用以由內部操做分離出外部溝通方法,使其能被修改內部而不影響外界其餘實體與其交互的方式
對應Java接口即聲明,聲明瞭哪些方法是對外公開提供的
在Java8中,接口能夠擁有方法體

面向接口編程

結構設計中,分清層次及調用關係,每層只向外(上層)提供一組功能接口,各層次僅依賴接口而非實現類
接口實現的變更不影響各層間的調用,這一點在公共服務中尤其重要
「面向接口編程」中的「接口」是用於影藏具體實現和實現多態性的組件

什麼是IOC

IOC:控制反轉,控制權的轉移,應用程序自己不負責依賴對象的建立和維護,而是由外部容器負責建立和維護
DI(依賴注入)是其一種實現方式
目的:建立對象而且組裝對象之間的關係

clipboard.png

clipboard.png

Spring的Bean配置

clipboard.png

Bean容器初始化

基礎:兩個包
    org.springframework.beans
    org.springframework.context
    BeanFactory提供配置結構和基本功能,加載並初始化Bean
    ApplicationContext保存了Bean對象並在Spring中被普遍使用方式,ApplicationContext
    本地文件
    Classpath
    Web應用中依賴servlet或Listener

clipboard.png

2-2 Spring注入方式

Spring注入是指在啓動Spring容器加載bean配置的時候,完成對變量的賦值行爲
經常使用的兩種注入方式
    --設值注入
    --構造注入

clipboard.png

clipboard.png

第三章:Spring Bean裝配(上)

3-1 Spring Bean裝配之Bean的配置項及做用域

clipboard.png

3-2 Spring Bean裝配之Bean的生命週期

定義
初始化
使用
銷燬

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

3-3 Spring Bean裝配之Aware接口

Spring中提供了一些以Aware結尾的接口,實現了Aware接口的bean在被初始化以後,能夠獲取相應資源
經過Aware接口,能夠對Spring相應資源進行操做(必定要慎重)
爲對Spring進行簡單的擴展提供了方便的入口

3-4 Spring Bean裝配之自動裝配(Autowiring)

clipboard.png

3-5 Spring Bean裝配之自動裝配(Resources)

clipboard.png

clipboard.png

clipboard.png

第四章:Spring Bean裝配(下)

4-1 Bean的定義及做用域的註解實現

clipboard.png

clipboard.png

clipboard.png

4-2 AuTowired註解說明1

@Required註解適用於bean屬性的setter方法
這個註解僅僅表示,受影響的bean屬性必須在配置時被填充,經過在bean定義或經過自動裝配一個明確的屬性值

4-5 @Bean註解

基於java的容器註解

@Bean標識一個用於配置和初始化一個由SpringIOC容器管理的新對象的方法,相似於XML配置文件的<bean/>
能夠在Spring的@Component註解的類中使用@Bean註解任何方法(僅僅是能夠),一般使用的是@Configuration

第五章:Spring AOP概念

5-1 AOP基本概念及特色

專題三AOP

什麼是AOP及實現方式
AOP基本概念
Spring中的AOP
Schema-based AOP
Spring AOP API
AspectJ

什麼是AOP

AOP:Aspect Oriented Programming的縮寫,意爲:面向切面編程,經過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。
主要的功能是:日誌記錄,性能統計,安全控制,事務處理,異常處理等等。

AOP實現方式

預編譯
    AspectJ
運行期動態代理(JDK動態代理、CGLib動態代理)
    SpringAOP、JbossAOP

clipboard.png

clipboard.png

Spring框架中AOP的用途

提供了聲明式的企業服務,特別是EJB的替代服務的聲明
容許用戶 定製本身的方面,以完成OOP與AOP的互補使用

Spring的AOP實現

純java實現,無需特殊的編譯過程,不須要控制類加載器層次
目前只支持方法執行鏈接點(通知Spring Bean的方法執行)
不是爲了提供最完整的AOP實現(儘管它很是強大);而是側重於提供一種AOP實現和Spring IOC容器之間的整合,用於幫助解決企業應用中的常見問題
Spring AOP不會與AspextJ競爭,從而提供綜合全面的AOP解決方案

clipboard.png

5-2 配置切面aspect

clipboard.png

<aop:config>風格的配置大量使用了Spring的自動代理機制

clipboard.png

5-3 配置切入點pointcut

clipboard.png

clipboard.png

clipboard.png

5-4 Advice應用(上)

5-5 Advice應用(下)

clipboard.png

5-6 Introductions

Introductions

簡介容許一個切面聲明一個實現指定接口的通知對象,而且提供了一個接口實現類來表明這些對象。
由<aop:aspect>中的<aop:declare-parents>元素聲明該元素用於聲明所匹配的類型擁有一個新的parent(所以得名)

clipboard.png

5-7 Advisors

Advisor就像一個小的自包含的方面,只有一個advice
切面自身經過一個bean表示,而且必須實現某個advice接口,同時,advice也能夠很好的利用AspectJ的切入點表達式

Spring經過配置文件中<aop:advisor>元素支持advisor實際使用中,大多數狀況下它會和transactional advice配合使用
爲了定義一個advisor的優先級以便讓advice能夠有序,可使用order屬性來定義advisor的順序

clipboard.png

第六章:Spring AOP的API介紹

6-1 Spring AOP API的Pointcut、advice概念及應用

Spring AOP API

這是Soring1.2歷史用法,如今(V4.0)仍然支持
這是SpringAOP基礎,不得不瞭解
如今的用法也是基於歷史的,只是更簡便了

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

6-2 ProxyFactoryBean及相關內容(上)

clipboard.png

clipboard.png

clipboard.png

clipboard.png

6-3 ProxyFactoryBean及相關內容(下)

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

第七章:Spring對AspectJ的支持

7-1 AspectJ介紹及Pointcut註解應用

clipboard.png

clipboard.png

Aspect

一、@AspectJ切面使用@Aspect註解配置,擁有@Aspect的任何bean將被Spring自動識別並應用。
二、用@Aspect註解的類能夠有方法和字段,他們也可能包括切入點(pointcut),通知(Advice)和引入(introduction)聲明。
三、@Aspect註解是不可以經過類路徑自動檢測發現的,因此須要配合使用@Component註釋或者在xml配置bean。

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

7-2 Advice定義及實例

7-3 Advice擴展

相關文章
相關標籤/搜索