亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Spring框架學(xué)習(xí)筆記(一):官方文檔介紹,IoC與AOP概念學(xué)習(xí)

mindwind / 1905人閱讀

摘要:構(gòu)造函數(shù)注入通過調(diào)用類的構(gòu)造函數(shù),將接口實(shí)現(xiàn)類通過構(gòu)造函數(shù)變量傳入。而在中,其使用橫切技術(shù),將這類代碼從原屬的封裝對象中提取出來,封裝到一個可重用模塊中,稱為。

最近實(shí)習(xí)用到Spring的開發(fā)框架,但是之前沒有接觸過,因此希望利用網(wǎng)上的資源來學(xué)習(xí)以下。

Spring官方給出了非常全面的介紹,非常適合我這種完全的小白……
在這一系列學(xué)習(xí)中,我閱讀的主要資源是5.1.2 Reference Doc.,以及論壇大神的講解blog。另外,Spring官方也給出了非常詳細(xì)的API文檔,適合較為熟悉的使用者查閱。
由于本人完全入門級,因此決定從reference一點(diǎn)點(diǎn)讀起。

官方文檔:Spring Framework Documentation
https://docs.spring.io/spring...

由于缺乏相關(guān)概念基礎(chǔ),因此本文開頭對Spring官方文檔的結(jié)構(gòu)進(jìn)行簡單介紹,之后講解Spring框架的兩大核心:IoC、AOP,在下一篇文章中再開始詳細(xì)學(xué)習(xí)Spring官方文檔。

documentation主要包括6部分:Core, Testing, Data Access, Web Reactive, Integration, Language。

Core

這一部分介紹了Spring的一些基礎(chǔ)核心的技術(shù)和功能,屬于Spring必讀內(nèi)容。Spring Framework中最重要的一部分是控制反轉(zhuǎn)容器(Inversion of Control container, IoC),而這一功能是由面向方面的編程技術(shù)(Aspect-Oriented Programming technology, AOP)實(shí)現(xiàn)的。IoC和AOP可以看作Spring框架最重要的兩個核心。

為了更詳細(xì)地闡釋Spring Framework的功能,這里先介紹一下IoC和AOP兩個概念。

概念引入 1.IoC(控制反轉(zhuǎn))與DI(依賴注入)
這一部分借鑒了論壇大神的分享:“談?wù)剬pring IOC的理解”,https://blog.csdn.net/qq_2265...
這篇blog除講解控制反轉(zhuǎn)和依賴注入的理論認(rèn)識以外,還提供了一個小的實(shí)例分析,值得閱讀。

IoC
IoC本質(zhì)上是一種設(shè)計(jì)思想,在IoC中,開發(fā)者將設(shè)計(jì)好的對象交給容器控制,而不是在對象內(nèi)直接控制。理解IoC的關(guān)鍵點(diǎn)如下:

誰控制誰,控制什么:在傳統(tǒng)的Java程序設(shè)計(jì)中,開發(fā)者在對象內(nèi)部通過new創(chuàng)建新對象,是程序主動創(chuàng)建依賴對象;而在IoC中,專門有一個容器創(chuàng)建這些對象,即由IoC控制對象的創(chuàng)建。因此在IoC中,IoC容器控制對象,主要控制外部資源獲取(包括對象、文件等)

為何是反轉(zhuǎn),哪些方面反轉(zhuǎn):傳統(tǒng)java程序設(shè)計(jì)中,是由開發(fā)者自己在對象中主動控制去直接獲取依賴對象,即正轉(zhuǎn);而在反轉(zhuǎn)中,是容器幫忙創(chuàng)建及注入依賴對象。反轉(zhuǎn)的含義即,容器幫我們查找并注入依賴對象,對象只是被動地接收依賴對象。反轉(zhuǎn)的實(shí)際是依賴對象的獲取過程

IoC是Spring的核心。對于Spring而言,IoC的含義即由Spring來負(fù)責(zé)控制對象的生命周期和對象間關(guān)系。也就是說,所有的類都會在Spring的容器中登記,我們告訴Spring我們是什么、需要什么,由Spring在系統(tǒng)運(yùn)行到適當(dāng)?shù)臅r候,將需要的東西主動給我們,同時也把我們交給其他需要我們的東西。
在傳統(tǒng)java開發(fā)中,所有類的創(chuàng)建、銷毀(即對象的生命周期)都由引用它的對象控制,而在Spring中,這一控制權(quán)轉(zhuǎn)移到了Spring容器中。

DI
DI(Dependency Injection, 依賴注入)可以理解為對IoC從另一個角度的描述。
DI的含義即,組件之間的依賴關(guān)系是由容器在運(yùn)行期間決定的,由容器動態(tài)地將某個依賴關(guān)系注入到組件之中,即容器動態(tài)地向某個對象提供它所需要的外部資源(對象、資源、常量數(shù)據(jù))。

這里所謂的“依賴”,指的就是程序中的對象依賴于IoC容器。

IoC注入的類型
包括三種:構(gòu)造函數(shù)注入、屬性注入和接口注入。
其中,Spring支撐構(gòu)造函數(shù)注入和屬性注入兩種。

構(gòu)造函數(shù)注入:通過調(diào)用類的構(gòu)造函數(shù),將接口實(shí)現(xiàn)類通過構(gòu)造函數(shù)變量傳入。這種方法在調(diào)用類創(chuàng)建的時候就將接口實(shí)現(xiàn)類的依賴傳入。

屬性注入:有選擇地通過setter方法完成調(diào)用類所需依賴的注入,而無需在創(chuàng)建類時注入,更加靈活方便。

接口注入:將調(diào)用類所有依賴注入的方法抽取到一個接口中,調(diào)用類通過實(shí)現(xiàn)該借口提供相應(yīng)的注入方法。通過接口注入需要額外聲明一個接口,增加了類的數(shù)目,且其效果與屬性注入無本質(zhì)區(qū)別,因此不提倡。

通過容器完成依賴關(guān)系的注入:由容器完成類的初始化與裝配工作,讓開發(fā)者從底層實(shí)現(xiàn)類的實(shí)例化、依賴關(guān)系裝配等工作中脫離出來,專注于業(yè)務(wù)邏輯開發(fā)工作。Spring框架即這樣的容器,它通過配置文件或注解描述類和類之間的依賴關(guān)系,自動完成類的初始化和依賴注入工作。

2.AOP面向方面程序設(shè)計(jì)
AOP概念的學(xué)習(xí)借鑒了這篇blog:“Spring3: AOP”, http://www.cnblogs.com/xrq730...

AOP可以理解為面向?qū)ο缶幊蹋∣OP)的補(bǔ)充和完善。OOP通過引入封裝、繼承、多態(tài)等概念建立了對象的層次結(jié)構(gòu),適用于定義對象間的縱向關(guān)系。但對于對象的橫向關(guān)系的定義,OOP并不適用,因此提出了AOP的概念。

AOP主要關(guān)注影響了多個類的公共行為,例如日志代碼、異常處理、安全性等,這類代碼與所對應(yīng)的對象的核心功能(業(yè)務(wù)功能)毫無關(guān)系。在OOP中,這類代碼會導(dǎo)致大量冗余,不利于模塊重用。而在AOP中,其使用“橫切”(cross cutting)技術(shù),將這類代碼從原屬的封裝對象中提取出來,封裝到一個可重用模塊中,稱為“Aspect”。這樣的操作降低了模塊間的耦合度,利于操作和維護(hù)。

在AOP中,其將軟件系統(tǒng)分為“核心關(guān)注點(diǎn)”和“橫切關(guān)注點(diǎn)”。其中,“橫切關(guān)注點(diǎn)”為橫切出來的aspect,“核心關(guān)注點(diǎn)”為然軟件系統(tǒng)的主體業(yè)務(wù)代碼。AOP的作用即將二者分離。

對Spring Framework中兩大核心概念的簡答介紹就到這里,下一篇開始正式學(xué)習(xí)Spring framework的文檔。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/72162.html

相關(guān)文章

  • Spring框架學(xué)習(xí)筆記(二):官方文檔Core Technologies - Part 1

    摘要:首先介紹系列文章內(nèi)容及官方文檔情況。官方文檔中的容器及介紹的容器主要由如下兩個包構(gòu)成以及。這一接口提供了配置機(jī)制以及一些基本的功能。該類以方式描述組成應(yīng)用的對象以及對象間依賴關(guān)系。在文件中,使用對相關(guān)元素進(jìn)行標(biāo)注,在下一級使用標(biāo)簽。 首先介紹系列文章內(nèi)容及Spring Framework官方文檔情況。 在這一系列學(xué)習(xí)中,我閱讀的主要資源是5.1.2 Reference Doc.,以及論...

    cnio 評論0 收藏0
  • Spring Boot [組件學(xué)習(xí)-Spring]

    摘要:框架最初是由編寫的,并且年月首次在許可下發(fā)布。在一個方法執(zhí)行之后,只有在方法退出拋出異常時,才能執(zhí)行通知在建議方法調(diào)用之前和之后,執(zhí)行通知。方法執(zhí)行之后,不考慮其結(jié)果,執(zhí)行通知。 導(dǎo)讀: 在上篇文章的結(jié)尾提到了Spring Boot 提供了一系列的框架整合(Starter POMs)幫助我們提升開發(fā)效率,但是這并不意味著我們不需要學(xué)習(xí)這些框架,反而更需要去學(xué)習(xí),通過學(xué)習(xí)這些框架可以使...

    raoyi 評論0 收藏0
  • Spring入門IOCAOP學(xué)習(xí)筆記

    摘要:入門和學(xué)習(xí)筆記概述框架的核心有兩個容器作為超級大工廠,負(fù)責(zé)管理創(chuàng)建所有的對象,這些對象被稱為。中的一些術(shù)語切面切面組織多個,放在切面中定義。 Spring入門IOC和AOP學(xué)習(xí)筆記 概述 Spring框架的核心有兩個: Spring容器作為超級大工廠,負(fù)責(zé)管理、創(chuàng)建所有的Java對象,這些Java對象被稱為Bean。 Spring容器管理容器中Bean之間的依賴關(guān)系,使用一種叫做依賴...

    wenyiweb 評論0 收藏0
  • Java后端

    摘要:,面向切面編程,中最主要的是用于事務(wù)方面的使用。目標(biāo)達(dá)成后還會有去構(gòu)建微服務(wù),希望大家多多支持。原文地址手把手教程優(yōu)雅的應(yīng)用四手把手實(shí)現(xiàn)后端搭建第四期 SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Spring 兩大核心之 AOP 學(xué)習(xí) | 掘金技術(shù)征文 原本地址:SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Sp...

    joyvw 評論0 收藏0
  • 慕課網(wǎng)_《Spring入門篇》學(xué)習(xí)總結(jié)

    摘要:入門篇學(xué)習(xí)總結(jié)時間年月日星期三說明本文部分內(nèi)容均來自慕課網(wǎng)。主要的功能是日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。 《Spring入門篇》學(xué)習(xí)總結(jié) 時間:2017年1月18日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個人學(xué)習(xí)源碼:https://git...

    Ververica 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<