Java中的@Conditional條件注解詳細(xì)解析
@Conditional條件注解
@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進(jìn)行判斷,滿足條件給容器注冊bean。
@Conditional的定義:
//此注解可以標(biāo)注在類和方法上 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Conditional { Class<? extends Condition>[] value(); }
例子:當(dāng)存在name為tom的組件時,創(chuàng)建user01組件。可以標(biāo)注在方法上也可以標(biāo)注在類上
@ConditionalOnBean(name = "tom") //當(dāng)容器中沒有tom組件 就不注冊user01組件,也能將其標(biāo)注在類上 @Bean public User user01(){ User user = new User(); user.setName("zhangao"); user.setAge(12); user.setPet(tomcat());//這個pet就是容器中的pet return user; }
- @ConditionalOnJava | 系統(tǒng)的java版本是否符合要求
- @ConditionalOnBean | 容器中存在指定Bean;
- @ConditionalOnMissingBean | 容器中不存在指定Bean;
- @ConditionalOnExpression | 滿足SpEL表達(dá)式指定
- @ConditionalOnClass | 系統(tǒng)中有指定的類
- @ConditionalOnMissingClass | 系統(tǒng)中沒有指定的類
- @ConditionalOnSingleCandidate | 容器中只有一個指定的Bean,或者這個Bean是首選Bean
- @ConditionalOnProperty | 系統(tǒng)中指定的屬性是否有指定的值
- @ConditionalOnResource | 類路徑下是否存在指定資源文件
- @ConditionalOnWebApplication | 當(dāng)前是web環(huán)境
- @ConditionalOnNotWebApplication | 當(dāng)前不是web環(huán)境
- @ConditionalOnJndi | JNDI存在指定項
到此這篇關(guān)于Java中的@Conditional條件注解詳細(xì)解析的文章就介紹到這了,更多相關(guān)@Conditional條件注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)Consul/Nacos根據(jù)GPU型號、顯存余量執(zhí)行負(fù)載均衡的步驟詳解
這篇文章主要介紹了Java實現(xiàn)Consul/Nacos根據(jù)GPU型號、顯存余量執(zhí)行負(fù)載均衡的步驟詳解,本文分步驟結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(59)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-08-08SpringBoot_Cache自定義使用SimpleCacheManager方式
這篇文章主要介紹了SpringBoot_Cache自定義使用SimpleCacheManager方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Java基于正則表達(dá)式獲取指定HTML標(biāo)簽指定屬性值的方法
這篇文章主要介紹了Java基于正則表達(dá)式獲取指定HTML標(biāo)簽指定屬性值的方法,涉及java基于正則的HTML元素匹配相關(guān)操作技巧,需要的朋友可以參考下2017-01-01SpringBoot深入講解單元測試與熱部署應(yīng)用
這篇文章介紹了SpringBoot單元測試與熱部署,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06