Conditional註解使用

2021-10-07 14:41:41 字數 1571 閱讀 2394

@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...