Spring實戰之三 高階裝配

2021-08-07 11:15:14 字數 1343 閱讀 5306

@primary和@component組合使用,宣告該bean在自動掃瞄時為首選bean,在遇到歧義時首先使用首選bean

@autowired(@inject)和@qualifier配合使用,在注入時指定要注入進去的是哪個bean,如@qualifier(「icecream」),表明注入id(確切地講是限定符,只不過預設限定符和id是相同的 )為icecream的bean

建立自定義限定符

@qualifier和bean宣告(@component或@bean)一起使用時顯示指定該bean的限定符

在spring中,bean預設都是單例的,但其實一共有以下幾種作用域:

通過@scope和@bean(或@component)一起使用來指定bean的作用域。

使用會話和請求作用域時,@scope還有乙個proxymode屬性,如下所示:

proxymode指定使用介面的方式實現該bean的**,如果proxymode的值設定為:scopedproxymode.target_class則表明要使用cglib來生成基於類的**。

如果是使用xml的配置方式,要指定使用cglib的基於類的**需加上以下元素:

如果不使用該元素,預設就是使用基於介面的**,也可以使用下面方式來顯示指定介面方式的**:

-class

="false"

/>

使用以下方式可以將檔案中的鍵值對載入到environment中,然後就可以在environment中取這些屬性。

cdplayerconfig {}我們還可以將屬性定義到外部的屬性檔案中,並使用佔位符值將其插入到spring bean中。在裝配時佔位符的形式為」$」,這些屬性是在配置檔案以外的乙個源得到的,可以在xml和註解中使用。使用註解方式時,需要配置乙個propertysourcesplaceholderconfigurer的bean,如下所示:

@bean

public

static propertysourcesplaceholderconfigurer placeholderconfigurer()

如果使用xml的配置方式,要使用佔位符需要加入以下元素:

我們還可以使用spring表示式語言(spel)來注入屬性,spel表示式放到#{},使用spel表示式的值可以是:

spring總結 三 高階裝配

一 spring profile 1.1 目的 1.2 方式spring profile配置 bean profile production public datasource jndidatasource dspring.profiles.active production spring.prof...

RabbitMQ實戰 三 高階特性

在實際生產中,很難保障前三點的完全可靠,比如在極端的環境中,生產者傳送訊息失敗了,傳送端在接受確認應答時突然發生網路閃斷等等情況,很難保障可靠性投遞,所以就需要有第四點完善的訊息補償機制。2.1.2.1 方案一 訊息資訊落庫,對訊息狀態進行打標 常見方案 將訊息持久化到db並設定狀態值,收到cons...

MongoDB之三(高階操作 聚合 游標)

一 聚合 常見的聚合操作跟sql server一樣,有 count,distinct,group,mapreduce。1 count count是最簡單,最容易,也是最常用的聚合工具,它的使用跟我們c 裡面的count使用簡直一模一樣 這個操作相信大家也是非常熟悉的,指定了誰,誰就不能重複,直接上圖...