springboot自动化配置核心注解


下面的注解是Spring Boot自动配置的基础,它们使得根据环境条件动态地配置和激活beans成为可能。只有了解了注解,才有机会弄懂三方包的运作原理,如cas登陆,权限控制等三方包都会基于自动化配置

两大基石

@Import

注解解释:
@Import注解用于导入其他配置类,这些配置类中定义的beans将被注册到Spring上下文中。

示例:

@Configuration
@Import(RestConfiguration.class)
public class ApplicationConfig {
    // RestConfiguration中定义的beans将被导入到Spring上下文
}

@Bean

注解解释:
@Bean注解用于声明一个bean,方法返回的对象将被注册为Spring上下文中的bean。@Bean注解通常用在@Configuration注解的类中

示例:

@Configuration
public class AppConfig {
    @Bean(name = "exampleBean")
    public ExampleBean exampleBean() {
        return new ExampleBean();
    }
}

此注解确保某个配置仅在类路径上存在某些类时生效。

四大金刚

@ConditionalOnWebApplication

注解解释:
@ConditionalOnWebApplication是一个条件注解,用于只在当前应用是Web应用时才使配置生效。它可以通过type属性进一步区分应用是基于Servlet的Web应用还是响应式Web应用。

示例:

@Configuration
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
public class ServletWebApplicationConfig {
    // 这里可以定义只有在Servlet类型的Web应用中才需要的beans
}

@ConditionalOnClass

注解解释:
@ConditionalOnClass此注解确保某个配置仅在类路径上存在某些类时生效。根据类路径上是否存在指定的类(或类数组),来条件化地激活配置。

示例:

@Configuration
@ConditionalOnClass(BaspProxyController.class)
public class BaspConfig {
    // 该配置仅在BaspProxyController类存在于类路径上时生效
}

此注解确保某个配置仅在类路径上存在某些类时生效。

@ConditionalOnBean

注解解释:
@ConditionalOnBean根据Spring上下文中是否存在指定的bean(或bean数组),来条件化地激活配置。

示例:

@Configuration
@ConditionalOnBean({RestProvider.class, BaspProperties.class})
public class ConditionalServiceConfig {
    // 该配置仅在RestProvider和BaspProperties这两个bean都已经存在于Spring上下文中时生效
}

此注解确保某个配置仅在Spring上下文中已经存在某些bean时生效。

@ConditionalOnMissingBean

注解解释:
@ConditionalOnWebApplication根据Spring上下文中是否缺少指定的bean(或bean数组),来条件化地激活配置

示例:

@Configuration
@ConditionalOnMissingBean(name = "baspProxyController")
public class DefaultBaspProxyControllerConfig {
    @Bean(name = "baspProxyController")
    public BaspProxyController baspProxyController() {
        // 这个bean仅在名为baspProxyController的bean不存在时才会创建
    }
}

注解用于只有当Spring上下文中不存在指定的bean时,才使配置生效。这通常用于提供默认配置。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值