spring

#Spring 是什么?

? ? Spring 是一個(gè)輕量級(jí)的 DI / IoC 和 AOP 容器的開(kāi)源框架。


? ? 優(yōu)點(diǎn):

? ? 1)方便解耦,簡(jiǎn)便開(kāi)發(fā)。

? ? 2)支持AOP編程

# spring? 體系結(jié)構(gòu)

1、data access、

2、web、

3、AOP、

4、core container、

5、test

## core container? 核心容器

? ? 4大核心:

? ? 1)beans? beans 容器

? ? 2)core 核心

? ? 3) context? 上下文

? ? 4)expression? 表達(dá)式

# DI、IOC、AOP

## DI:依賴注入

? ? DI為實(shí)現(xiàn)IOC思想做支持。

? ? 依賴注入有三種方式 1、屬性注入? 2、構(gòu)造器注入 3、工廠注入? 主要是 1和 2。

? ? 如果一個(gè)對(duì)象依賴于其它的對(duì)象,此時(shí)就需要注入被依賴的對(duì)象,例如:service 依賴與dao, 此時(shí)需要在service的bean中注入(ref) dao。

##一些名詞

? ? 1. property: 用于進(jìn)行屬性注入

? ? ? ? 1) name :bean的屬性名稱,通過(guò)setter方法獲得。

? ? ? ? 2) ref: 另一個(gè)bean的 id 的引用。

? ? 2.API

? ? 1)BeanFactory: 是一個(gè)生成bean的工廠,采取延遲加載bean,在第一次getbean()的時(shí)候,才會(huì)初始化bean.與ApplicationContext區(qū)別。

? ? 2)classPathXmlApplicattion: ApplicationContext 的子接口。加載配置文件,相對(duì)路徑加載,一般架加載src下的文件(運(yùn)行時(shí)的是/WEB-INF/class/xxx)路徑。

? ? 3)FileSystemXmlApplication:ApplicationContext 的子接口。加載指定盤符下的配置文件。

? ? 4)ApplicationContext:上下文,是BeanFactory的子接口,可以自動(dòng)裝配bean、事件傳遞、國(guó)際化、各應(yīng)用層的context實(shí)現(xiàn)。

? ? ? ? 當(dāng)配置文件被加載的時(shí)候,對(duì)象就被實(shí)例化了。


## IOC:控制反轉(zhuǎn)

? ? 是一種設(shè)計(jì)思想,就是將原本在程序中手動(dòng)創(chuàng)建對(duì)象的控制權(quán),交由Spring框架來(lái)管理。一般情況下,我們?nèi)ナ褂媚硞€(gè)對(duì)象,就需要自己去創(chuàng)建這個(gè)對(duì)象,

? ? 而應(yīng)用了Spring框架,則從spring容器中獲取,把穿甲 對(duì)象的控制權(quán)反轉(zhuǎn)給了spring框架。

? ? 舉個(gè)簡(jiǎn)單的例子:正常情況下,想要吃蛋炒飯,你要準(zhǔn)備飯、蛋、器材,這些都要你自己準(zhǔn)備。

? ? 但是如果有飯店做,那么我們直接叫飯店做,然后去取就可以了。這個(gè)例子中“飯店”就是spring 的ioc容器。

## spring bean

? ? ? 1、


### 基于xml

#### 實(shí)例話方式

? ? 3種實(shí)例化的方式:

? ? 1)默認(rèn)構(gòu)造: 使用默認(rèn)的構(gòu)造函數(shù),因此被加載的bean 對(duì)象的類,必須有一個(gè)空參構(gòu)造函數(shù),否則報(bào)錯(cuò)。

? ? 2)靜態(tài)工廠:通過(guò)一個(gè)靜態(tài)方法生產(chǎn)bean,它的方法是static的。在bean 中使用 <bean? id ="" class =""? factory-method=""> 配置。一般與單例模式結(jié)合。

? ? 3)實(shí)例工廠:必須先有工廠的實(shí)例對(duì)象,然后通過(guò)實(shí)例對(duì)象去創(chuàng)建對(duì)象,所有的方法都是非靜態(tài)的。

? ? ? ? ? ? 先定義工廠的bean,然后定義需要獲取的需要加載對(duì)象的bean,再這個(gè)對(duì)象的bean中配置工廠的id:factory-bean="" 和方法factory-method=""。

#### bean 的生命周期

#### bean 的種類

#### bean 的作用域


? ? scop

? ? ? 單例和多例

# AOP:切面編程-

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容