Spring框架的架構

2021-09-24 19:14:01 字數 2716 閱讀 7965

今天學習了spring框架的架構,下面是整理spring的知識。

一.spring框架概述:

概述: 為了解決專案中各層之間的松耦合問題(起到元件之間的粘結作用). 開源框架.

官網: www.spring.io 版本 : 3.x 4.x(建議) 5.x

好處:1.不依賴於應用伺服器.

2.ioc(控制反轉)技術實現元件控制.

通過di(依賴注入)技術提高了元件之間的解耦.

3.通過aop(面向切面程式設計)技術實現安全、事務、日誌功能的統一管理,

提高復用.

4.spring框架可以幾乎與其他任何框架進行良好的整合使用.

5.spring所有專案之間不相互依賴.

三.ioc和di :

ioc : 控制反轉. 本質: 將手動建立物件的工作,交給spring容器實現完成.

1.在spring容器中可以配置建立例項物件.無論帶參,無參構造例項都是可以實現的.

spring.xml容器中配置:

2.如何通過註解的用法代替spring配置檔案中的寫法.實現ioc控制.

2.1: 首先需要在實體類中: 採用註解.

@component , @controller , @service , @repository

2.2: 基於spring容器配置註解的掃瞄和支援.

切記 : 當採用ioc註解的方式進行物件的建立,在沒有指定物件名的情況下,預設生成物件名稱: 類名稱首字母小寫作為: 預設的物件名.

di : 依賴注入.含義 : 指的是針對實體類中: 屬性成員賦值操作.

1.針對實體中的屬性實現注入: 採用容器配置寫法實現.

1.1:類中依賴的屬性: 必須get/set封裝.

1.2:進行注入:

2.屬性的注入: 也可採用註解的寫法實現.

//無需提供屬性的get/set封裝方法實現注入.

@resource(name=」物件名」) //根據物件名稱進行spring容器查詢,並注入.

private banji bj1;

@autowired //根據型別進行spring容器查詢,找到指定型別物件,直接注入.

private banji bj1;

案例: ioc + di 實現以下功能.

1.採用spring容器完全配置的寫法實現分層開發與呼叫.

2.採用spring容器註解的寫法實現分層開發與呼叫.

四.aop技術:

面向切面概述:

切面的原理: 將 業務操作 與 安全,日誌,事務 結合使用的過程稱為面向切面程式設計.

靜態**: 是一種程式設計方法. 對原有功能進行功能增強.

動態**: 就是將**類與**功能進行拆分編寫的一種方式.

方式一:

根據jdk的動態**介面實現 : invocationhandle實現動態**.

object o1 = proxy.newproxyinstance();

方式二: spring預設切面使用方式.

cglib外掛程式實現的動態**.

切面的一些概念:

目標類: 使用者需要呼叫的業務功能類.類中:有目標方法.

切面: **類.

通知: **類中額外功能.分類: 前置,後置,環繞,返回值,異常處理等.

切入點: **類明確 **誰的 規則.

織入: 將**功能 + 目標功能 組織到一起.

2.編寫目標類與目標方法.

3.編寫切面 , 和切面中的通知.

4.在spring容器中,將目標與切面進行織入.注:織入時,指定切入點.

5.測試訪問目標類中的目標方法.是否進行增強成功.

2.2:實現方式二,基於註解實現.aop動態**.

五.spring框架與hibernate 框架的整合:

1.spring框架與jdbc實現整合:

1.1: 引用spring的jar + 驅動包 + dbcp資料來源,pool.jar.

1.2: 資料來源物件的建立: 交給spring容器完成.

//配置四個連線屬性...

1.3: 如何編寫dao層(核心: 需要根據datasource進行增刪改查).

private jdbctemplate jdbctemplate;

@autowired

public void setdatasource(datasource datasource)

增刪改查: this.jdbctemplate.update() /queryforobject() / query()...

1.4:編寫測試類:測試使用.

3.spring與hibernate框架整合使用:

3.0: 整合spring與hibernate,將所有jar包進行引入.

spring+ hibernate +(spring-hibernate)+ dbcp.jar,pool.jar,驅動.jar

3.1: 如何控制資料庫的連線.datasource ---> sessionfactory.

3.2: 如何讓dao層運算元據庫.

方式一:dao層繼承父類 : hibernatedaosupport.

方式二:在spring容器中對dao層進行sessionfactory工廠屬性的注入.

3.2: 如何給service層增加事務控制.

在spring容器中通過事務管理器,建立事務通知. 通過面向切面程式設計進行動態**使用.

spring框架構成

核心容器提供spring框架的基本功能。主要元件是beanfactory,工廠模式的實現,使用ioc模式將應用程式的配置和依賴性規範與實際的應用程式 分開 spring context是spring上下文,實際上是乙個配置檔案,由spring框架提供上下文資訊。通過配置管理特性,aop模組直接將面向...

Spring框架 Spring的環繞通知

問題 當我們配置了環繞通知之後,切入點方法沒有執行,而通知方法執行了 環繞通知 問題 當我們配置了環繞通知之後,切入點方法沒有執行,而通知方法執行了 public void aroundprintlog 配置環繞通知 詳細的注釋請看logger類中 問題 當我們配置了環繞通知之後,切入點方法沒有執行...

spring的整體架構

core container 核心容器 core container 核心容器 包含有core,beans,context,expression language模組。core和beans模組是框架的基礎部分,提供ioc 控制反轉 和依賴注入特性。這裡的基礎概念是beanfactory,它提供對fa...