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必須存在一個bean
@ConditionalOnClass(value = C.class)
// 當類路徑下有指定類的條件下
@ConditionalOnExpression("${enabled:true}")
// 當表達式為true的時候,才會實例化一個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應用)
@ConfigurationProperties("spring.boot.admin.notify.mail")
public B b() {
return new B();
}
}
對ConditionalOn* 的理解
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關(guān)閱讀更多精彩內(nèi)容
- Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
- Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
- Spring Boot Rock'n'Roll - 一個架構(gòu)士的思考與沉淀https://afoo.me/post...
- 序列分類,預測整個輸入序列的類別標簽。情緒分析,預測用戶撰寫文字話題態(tài)度。預測選舉結(jié)果或產(chǎn)品、電影評分。 國際電影...