@conditional:spring4.0 介紹了乙個新的註解@conditional,它的邏輯語義可以作為"if…then…else…"來對bean的註冊起作用。
//
// source code recreated from a .class file by intellij idea
// (powered by fernflower decompiler)
//package org.springframework.context.annotation;
import org.springframework.core.type.annotatedtypemetadata;
@functionalinte***ce
public
inte***ce
condition
自定義乙個類,實現conditional介面, 實現matches方法;
public
class
linuxcondition
implements
condition
return
false;}
}
在需要判斷條件的bean上,加@conditional(linuxcondition.class),即可在滿足條件,返回值為 true 的時候載入對應的類;
@bean
@conditional
(linuxcondition.
class
)public testbean gettestbean()
作用在類上;
// 可以配合spring的容器使用
@restcontroller
@conditional()
public
class
acscontroller
// 可以配合@configuration註解使用
@configuration
@conditional()
public
class
}
多個條件作用在類上,滿足全部條件才會初始化bean;
// 定義條件-01
public
class
windowscondition
implements
condition
return
false;}
}// 定義條件-02
public
class
osxcondition
implements
condition
return
false;}
}@restcontroller
@conditional
(value =
)public
class
acscontroller
條件註解 Conditional
可以讓某乙個bean 在某些條件下 加入ioc容器,其他情況下不加ioc容器。a.準備普通bean b.增加條件bean 給每個bean設定條件,必須實現condition介面 如 oilcarcondition類 public class oilcarcondition implements co...
Conditional註解分析
我們需要bean在滿足一定條件下才允許注入spring容器的情況,可以加註 conditional註解。加註了此註解的bean在定義被spring註冊前會被條件判斷。自定義註解標註 conditional也不允許宣告為 inherited。target retention retentionpoli...
Spring中Conditional註解使用例項
1 接著之前的測試 2 新新增測試類 條件類 public class magicexistscondition implements condition 3 修改配置類 configuration 配之類 componentscan 掃瞄的基礎包 public class cdplayconfig...