今天學習了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...