1. 程式人生 > >Spring boot 梳理 - @Conditional

Spring boot 梳理 - @Conditional

@Conditional(TestCondition.class)

這句程式碼可以標註在類上面,表示該類下面的所有@Bean都會啟用配置,也可以標註在方法上面,只是對該方法啟用配置。

 

spring框架還提供了很多@Condition給我們用,當然總結用語哪種好理解,看給位讀者嘍

@ConditionalOnBean(僅僅在當前上下文中存在某個物件時,才會例項化一個Bean)
@ConditionalOnClass(某個class位於類路徑上,才會例項化一個Bean)
@ConditionalOnExpression(當表示式為true的時候,才會例項化一個Bean)
@ConditionalOnMissingBean(僅僅在當前上下文中不存在某個物件時,才會例項化一個Bean)
@ConditionalOnMissingClass(某個class類路徑上不存在的時候,才會例項化一個Bean)
@ConditionalOnNotWebApplication(不是web應用)

 

@Configuration
@ConditionalOnWebApplication(
    type = Type.SERVLET
)
@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
@AutoConfigureOrder(-2147483638)
@AutoConfigureAfter({DispatcherServletAutoConfiguration.
class, ValidationAutoConfiguration.class}) public class WebMvcAutoConfiguration { ...猜測,Spring boot 在此處載入 application.properties 中關於MVC的預設配置;如果@Conditional返回false,則該配置類不執行 }