Spring高階話題 條件註解

2021-10-01 08:43:02 字數 3027 閱讀 9912

一、什麼是條件註解

根據特定的條件來控制bean的建立行為

使用到的註解 @conditional

二、如何使用條件註解
通過實現condition介面並重寫matches方法(構造判斷條件)來實現乙個條件判斷類

在配置bean時使用@conditional註解,並指定條件判斷類,實現有條件地建立bean

三、conditiondemo
通過判斷程式在什麼系統下執行,來建立對應的bean,並輸出該系統下列表展示命令

條件判斷類

package com.cactus.demo.conditional;

import org.springframework.context.annotation.condition;

import org.springframework.context.annotation.conditioncontext;

import org.springframework.core.type.annotatedtypemetadata;

/** * created by liruigao

* date: 2019-12-05 16:08

* description:

*/public

class

maccondition

implements

condition

}

條件判斷類

package com.cactus.demo.conditional;

import org.springframework.context.annotation.condition;

import org.springframework.context.annotation.conditioncontext;

import org.springframework.core.type.annotatedtypemetadata;

/** * created by liruigao

* date: 2019-12-05 16:13

* description:

*/public

class

windowscondition

implements

condition

}

demobean介面類

package com.cactus.demo.conditional;

/** * created by liruigao

* date: 2019-12-05 16:15

* description:

*/public

inte***ce

ilistservice

demobean

package com.cactus.demo.conditional;

/** * created by liruigao

* date: 2019-12-05 16:16

* description:

*/public

class

maclistservice

implements

ilistservice

}

demobean

package com.cactus.demo.conditional;

/** * created by liruigao

* date: 2019-12-05 16:16

* description:

*/public

class

windowslistservice

implements

ilistservice

}

配置類

package com.cactus.demo.conditional;

import org.springframework.context.annotation.bean;

import org.springframework.context.annotation.conditional;

import org.springframework.context.annotation.configuration;

/** * created by liruigao

* date: 2019-12-05 16:04

* description:

*/@configuration

public

class

conditionalconifg

@bean

@conditional

(maccondition.

class

)public ilistservice maclistservice()

}

main

package com.cactus.demo.conditional;

/** * created by liruigao

* date: 2019-12-05 16:02

* description:

*/public

class

main

}

result

windowscondition --> osname : mac os x

maccondition --> osname : mac os x

mac command: ls

Spring高階話題 Aware

一 aware是什麼?spring aware就是一些定義了spring容器本身功能資源的介面 spring提供的aware介面 介面備註 beannameaware 獲得到容器中bean的名稱 beanfactoryaware 獲得當前 bean factory,這樣可以呼叫容器的服務 messa...

Spring 條件註解(conditional)

spring 的條件註解在於 根據滿足某乙個特定條件建立乙個特定的bean 例如,當某個jar 包在乙個類的路徑下,自動配置乙個或多個bean 或者只有某個bean 被建立才會建立另外乙個bean 總的來說,就是通過特定的條件來控制bean 的建立行為。主要是實現為兩步 首先 實現 conditio...

八 高階話題

本章描述bufferevent的一些對通常使用不必要的高階特徵。如果只想學習如何使用bufferevent,可以跳過這一章,直接閱讀下一章。有時候網路程式需要與自身通訊。比如說,通過某些協議對使用者連線進行隧道操作的程式,有時候也需要通過同樣的協議對自身的連線進行隧道操作。當然,可以通過開啟乙個到自...