日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring整理

發布時間:2025/4/16 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring概念

?

1 spring是開源的輕量級框架

?

2 spring核心主要兩部分:

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

(2)ioc:控制反轉,

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

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

?

3 spring是一站式框架

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

- web層:springMVC

- service層:spring的ioc

- dao層:spring的jdbcTemplate

?

Spring的ioc操作

? ?

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

2 ioc操作兩部分:

(1)ioc的配置文件方式

(2)ioc的注解方式

?

IOC底層原理

1 ioc底層原理使用技術

(1)xml配置文件

(2)dom4j解決xml

(3)工廠設計模式

(4)反射

?

IOC入門案例

1.創建類,在類里面創建方法

?

2.創建spring配置文件,配置創建類

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

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

(2)引入schema約束

(3)配置對象創建

<bean id="user" class="com.gifthouse.ioc.User"><!-- collaborators and configuration for this bean go here --></bean>

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:默認值,單例

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

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

- globalSession:創建對象把對象放到globalSession里面

?

屬性注入介紹

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

?

2 屬性注入的方式介紹(三種方式)

1)使用set方法注入

2)使用有參數構造注入

3)使用接口注入

?

?

3 spring框架里面,支持前兩種方式

1set方法注入(重點)

2)有參數構造注入

?

使用有參數構造注入屬性

?

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

?

?

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

1 創建service類和dao

1)在service得到dao對象

2 具體實現過程

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

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

?

3)配置文件中注入關系

IOC和DI區別

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

2DI: 依賴注入,向類里面的屬性中設置值

3)關系:依賴注入不能單獨存在,需要在ioc基礎之上完成操作

?

?

Spring整合web項目原理

?

?

1 加載spring核心配置文件

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

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

3 實現原理

(1)ServletContext對象

(2)監聽器

?

3)具體使用:

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

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

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

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

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

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

?

Spring的bean管理(注解)

注解介紹

1 代碼里面特殊標記,使用注解可以完成功能

2 注解寫法 @注解名稱(屬性名稱=屬性值)

3 注解使用在類上面,方法上面 屬性上面

Spring注解開發準備

1 導入jar

1)導入基本的jar

2)導入aopjar

2 創建類,創建方法

3 創建spring配置文件,引入約束

1)第一天做ioc基本功能,引入約束beans

2)做springioc注解開發,引入新的約束

4 開啟注解掃描

注解創建對象

1 在創建對象的類上面使用注解實現

2 創建對象有四個注解

?

1@Component

2@Controller

3@Service

4@Repository

目前這四個注解功能是一樣的,都創建對象

?

3 創建對象單實例還是多實例

?

注解注入屬性

1 創建service類,創建dao類,在service得到dao對象

注入屬性第一個注解 @Autowired

1)創建daoservice對象

2)在service類里面定義dao類型屬性

注入屬性第二個注解 @Resource

?

配置文件和注解混合使用

1 創建對象操作使用配置文件方式實現

2 注入屬性的操作使用注解方式實現

?

AOP概念

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

?

2 ?AOP采取橫向抽取機制,取代了傳統縱向繼承體系重復性代碼

?

3 aop底層使用動態代理實現

(1)第一種情況,有接口情況,使用動態代理創建接口實現類代理對象

(2)第二種情況,沒有接口情況,使用動態代理創建類的子類代理對象

?

AOP原理

?

AOP操作術語

Joinpoint(連接點): 類里面可以被增強的方法,這些方法稱為連接點

?

Pointcut(切入點):所謂切入點是指我們要對哪些Joinpoint進行攔截的定義.

?

Advice(通知/增強):所謂通知是指攔截到Joinpoint之后所要做的事情就是通知.通知分為前置通知,后置通知,異常通知,最終通知,環繞通知(切面要完成的功能)

Aspect(切面): 是切入點和通知(引介)的結合

Introduction(引介): 引介是一種特殊的通知在不修改類代碼的前提下, Introduction可以在運行期為類動態地添加一些方法或Field.

Target(目標對象): 代理的目標對象(要增強的類)

Weaving(織入): 是把增強應用到目標的過程.

????????? 把advice 應用到 target的過程

Proxy(代理): 一個類被AOP織入增強后,就產生一個結果代理類

?

?

Spring的aop操作

1 spring里面進行aop操作,使用aspectj實現

(1)aspectj不是spring一部分,和spring一起使用進行aop操作

(2)Spring2.0以后新增了對AspectJ支持

?

2 使用aspectj實現aop有兩種方式

(1)基于aspectj的xml配置

(2)基于aspectj的注解方式

使用表達式配置切入點

1 切入點:實際增強的方法

2 常用的表達式

execution(<訪問修飾符>?<返回類型><方法名>(<參數>)<異常>)

(1)execution(* cn.itcast.aop.Book.add(..))

(2)execution(* cn.itcast.aop.Book.*(..))

(3)execution(* *.*(..))

(4) 匹配所有save開頭的方法 execution(* save*(..))

?

?

Aspectj的aop操作

?

?

Spring整合web項目演示

1 演示問題

1action調用serviceservice調用dao

每次訪問action時候,都會加載spring配置文件

?

2 解決方案:

1)在服務器啟動時候,創建對象加載配置文件

2)底層使用監聽器、ServletContext對象

3 spring里面不需要我們自己寫代碼實現,幫封裝

1)封裝了一個監聽器,只需要 配置監聽器 就可以了

2)配置監聽器之前做事情:導入spring整合web項目jar

?

??基于aspectj的注解aop

1 使用注解方式實現aop操作

第一步 創建對象

第二步 spring核心配置文件中,開啟aop操作

第三步 在增強類上面使用注解完成aop操作

?

Spring的事務管理

事務概念

1 什么事務

2 事務特性

3 不考慮隔離性產生讀問題

4 解決讀問題

1)設置隔離級別

?

Spring事務管理api

1 spring事務管理兩種方式

第一種 編程式事務管理(不用)

第二種 聲明式事務管理

  • 基于xml配置文件實現
  • 基于注解實現
  • 2 spring事務管理的api介紹

    聲明式事務管理(注解)

    第一步 配置事務管理器

    第二步 配置事務注解

    第三步 在要使用事務的方法所在類上面添加注解

    ?

    ?

    總結

    以上是生活随笔為你收集整理的Spring整理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。