Spring實戰系列 第三章 高階裝配

2021-09-12 19:06:36 字數 1006 閱讀 8184

環境與profile

spring.profiles.default

spring.profiles.active

設定上述兩引數的方法

作為dispatcherservlet的初始化引數

作為web應用的上下文引數

作為jndi條目

作為環境變數

作為jvm的系統屬性

在繼承測試類上,使用@activeprofiles註解設定

在properties檔案中設定

條件化配置

@conditional

@profile

profilecondition

自動裝配的歧義性

只針對注入時採用的是介面,而該介面有多個實現時會出現該情況;如果註冊的物件不是介面形式,而是類,預設注入是的屬性名為bean name去容器中查詢,如果沒找到,則按型別查詢,如果有多個實現,則會報異常;如果找到了對應的bean,則即使該類有多個實現,也不會報異常;

解決辦法:

@primary

@qualifier

3)自定義註解

bean的作用域

單例是無狀態的

但有時我們使用的類是易變的,他們會保持一些狀態,重用是不安全的,因為物件會被汙染,重用的時候會出現意想不到問題。

作用域包括:

單例:singleton

原型:prototype

會話:session

請求:request

scopedproxymode.inte***ces

configurablebeanfactory. scope_singleton/scope_prototype

執行時注入:

當討論依賴注入的時候,我們通常所討論的是將乙個bean引用注入到另乙個bean的屬性或構造器引數中,它通常來講指的是將乙個物件與另乙個物件進行關聯。

但bean裝配的另外乙個方面指的是將乙個值注入到bean的屬性或者構造器引數中。

屬性佔位符:$

spel:#

第三章 高階特性

當要取list,tuple和str的某個元素到某個元素,除了逐個列出以外,還可以用切片 slice 來完成.使用方法 名字 起始index 結束index l michael sarah tracy bob jack l 0 3 michael sarah tracy 表示從起始索引開始,逐個取值,...

spring 第三章節 高階裝配

spring裝載bean的時候,可以依據不同環境 全域性變數值 對不同的bean進行初始化。這樣可以讓系統根據不同環境採用最佳實現方式。開發環境 測試環境 qa環境 生產環境甚至是前端開發環境 profile spring裝配bean的時候,可以依據不同的條件判定 系統環境變數值 依賴bean是否裝...

Spring 第三章 Spring與AOP(二)

新增多個通知 使用cglib 現在想只增強單獨的目標方法,advice只能指定時間點,不能指定切入點。想實現指定切入點,就要實現顧問advisor。pointcutadvisor是顧問的一種,可以指定具體切入點,對通知進行包裝,會根據不同的通知型別,在不同的時間點,將切面織入到不同的切入點。poin...