對(duì)ConditionalOn* 的理解

package com.lz.springboot.study.spring;

import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;

import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;

import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;

import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;

import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWebApplication;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration

public class ConditionalOnBeanT {

class A {

}

class B {

private String from;

private String to;

public String getFrom() {

return from;

}

public void setFrom(String from) {

this.from = from;

}

public String getTo() {

return to;

}

public void setTo(String to) {

this.to = to;

}

}

class C {

}

class D {

}

@Bean

public A a() {

return new A();

}

// @Bean

public C c() {

return new C();

}

@Bean

@ConditionalOnBean(value = A.class)

// A必須存在一個(gè)bean

@ConditionalOnClass(value = C.class)

// 當(dāng)類路徑下有指定類的條件下

@ConditionalOnExpression("${enabled:true}")

// 當(dāng)表達(dá)式為true的時(shí)候,才會(huì)實(shí)例化一個(gè)Bean

@ConditionalOnMissingBean(value = C.class)

@ConditionalOnMissingClass

@ConditionalOnProperty(prefix = "spring.boot.admin.notify.mail", name = "from", havingValue = "xx")

// 配置文件中spring.boot.admin.notify.mail.from必須存在

@ConditionalOnNotWebApplication

// (不是web應(yīng)用)

@ConfigurationProperties("spring.boot.admin.notify.mail")

public B b() {

return new B();

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容