1. 程式人生 > >Spring 學習1

Spring 學習1

ron 9.png 畫圖 attribute 調用 app 建議 jdb tom

Srping概念

1.Spring是開源的輕量級框架

2.Srping核心兩部分:

(1)aop:面向切面編程,擴展功能不是修改源代碼實現

(2)ioc:控制反轉

-比如有一個類,在類裏面有方法(不是靜態方法),調用類裏面的方法,創建類的對象調用方法,創建類對象的過程,需要new出來對象

-把對象的創建不是通過new方式實現,而是交給spring配置創建類對象

3.Srping是一站式框架

(1)spring在javaee三層結構中,每一層都提供不同的解決技術

-web層:springMVC

-service層:spring的ioc

-dao層:spring的jdbcTemplate

4.Srping版本

(1)hibernate5.x

(2)spring4.x

Spring的ioc操作

1.把對象的創建交給spring進行管理

2.ioc操作兩部分:

(1)ioc的配置文件方式

(2)ioc的註解方式

ioc底層原理

1. ioc底層原理使用技術

(1)xml配置文件

(2)dom4j解決xml

(3)工廠設計模式

(4)反射

2. 畫圖分析ioc實現原理

技術分享圖片

技術分享圖片

IOC入門案例

第一步 導入jar包

(1)解壓資料zip文件

Jar特點:都有三個jar包

技術分享圖片

技術分享圖片

(2)做Spring最基本功能時候,導入四個核心的jar包就可以了

(3)導入支持日誌輸出的jar包

第二步 創建類,在類裏面創建方法

技術分享圖片

第三步 創建spring配置文件,配置創建類

(1)spring核心配置文件名稱和位置不是固定的

-建議放到src下面,官方建議applicationContext.xml

(2)引入schema約束,

技術分享圖片

技術分享圖片

(3)配置對象創建

技術分享圖片

第四步 寫代碼測試對象創建

(1)這段代碼在測試中使用

技術分享圖片

Spring的bean管理(xml方式)

Bean實例化的方式

1. 在spring裏面通過配置文件創建對象

2. bean實例化三種方式實現

第一種 使用類的無參數構造創建(重點)

技術分享圖片

類裏面沒有無參數的構造,出現異常

技術分享圖片

第二種 使用靜態工廠創建

(1)創建靜態的方法,返回類對象

技術分享圖片

第三種 使用實例工廠創建

(1)創建不是靜態的方法,返回類對象

技術分享圖片

Bean標簽常用屬性

(1)id屬性:起名稱,id屬性值名稱可任意命名

-id屬性值,不能包含特殊符號

-根據id值得到配置對象

(2)class屬性:創建對象所在類的全路徑

(3)name屬性:功能和id屬性一樣,id屬性值不能包含特殊符號,但是在name屬性值裏面可以包含特殊符號

(4)scope屬性:

-singleton:默認值,單例

技術分享圖片

技術分享圖片

技術分享圖片

-prototype:多例

技術分享圖片

技術分享圖片

技術分享圖片

-requset:創建對象把對象放到request域裏面

-session:創建對象把對象放到session域裏面

-glbalSession:創建對象把對象放到globalSession裏面

技術分享圖片

屬性註入介紹

1 創建對象時候,向類裏面的屬性裏面設置值

2 屬性註入的方式(三種)

(1)使用set方法註入

(2)使用有參數構造註入

(3)使用接口註入

技術分享圖片

3 在spring框架裏面,只支持前兩種方式

(1)set方法註入

(2)有參數構造註入

使用有參數構造註入屬性

技術分享圖片

技術分享圖片

使用set方法註入屬性(重點)

技術分享圖片

技術分享圖片

註入對象類型屬性(重點)

1 創建service類和dao類

(1)在service得到dao對象

2 具體實現過程

(1)在service裏面把dao作為類型屬性

(2)生成dao類型屬性的set方法

技術分享圖片

(3)配置文件中註入關系

技術分享圖片

P名稱空間註入

技術分享圖片

技術分享圖片

註入復雜類型屬性

1 數組

2 list集合

3 map集合

4 properties類型

<!--註入復雜類型屬性值-->

<bean id="person" class="com.intergraph.property.Person">

<!--數組-->

<property name="arrs">

<list>

<value>小王</value>

<value>小馬</value>

<value>小宋</value>

</list>

</property>

<!--list-->

<property name="list">

<list>

<value>小奧</value>

<value>小金</value>

<value>小明</value>

</list>

</property>

<!--map-->

<property name="map">

<map>

<entry key="aa" value="lucy"></entry>

<entry key="bb" value="mary"></entry>

<entry key="cc" value="tom"></entry>

</map>

</property>

<!--properties-->

<property name="properties">

<props>

<prop key="driverclass">com.mysql.jdbc.Driver</prop>

<prop key="username">root</prop>

</props>

</property>

</bean>

IOC和DI區別

(1)IOC:控制反轉,把對象創建交給spring進行配置

(2)DI:依賴註入,不能單獨存在,需要在IOC基礎上之上完成操作

Spring整合web項目原理

1 加載spring核心配置文件

技術分享圖片

(1)new對象,功能可以實現,效率很低

2 實現思想:把加載配置文件和創建對象過程,在服務器啟動時候完成

3 實現原理

(1)ServletContext對象

(2)監聽器

(3)具體使用:

- 在服務器啟動時候,為每個項目創建ServletContext對象

- 在ServletContext對象創建時候,使用監聽器可以具體到ServletContext對象在什麽時候創建

- 使用監聽器聽到ServletContext對象創建時候

- 加載spring配置文件,把配置文件配置對象創建

- 把創建出來的對象放到ServletContext域對象裏面(setAttribute方法)

- 獲取對象時候,到ServletContext域得到(getAttribute方法)

Spring 學習1