springboot注解--基础--03--自动配置类的常用注解

springboot注解–基础–03–自动配置类的常用注解


1、规则

  1. 以AutoConfiguration结尾
    1. xxxxxAutoConfiguration
      在这里插入图片描述

2、常用注解

  1. ServletWebServerFactoryAutoConfiguration 作为案例

  2. 对应的注解截图如下

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

2.1、Configuration

2.1.1、AliasFor

在这里插入图片描述

  1. @Configuration(value = “com.fei”)
    1. value=“com.fei” 是Component注解的value使用。

2.1.2、proxyBeanMethods = false

  1. 用来指定@Bean注解标注的方法是否使用代理
    1. true
      1. 使用代理,直接从IOC容器之中取得对象
    2. false
      1. 不使用注解,每次调用@Bean标注的方法获取到的对象和IOC容器中的都不一样,是一个新的对象
      2. 可以将此属性设置为false来提高性能;

2.2、@AutoConfigureOrder

  1. 配置类的加载顺序
  2. 数字越小,越优先加载,负数也可以。

在这里插入图片描述

2.2、@ConditionalOnClass(ServletRequest.class)

  1. 在classpath下能找到ServletRequest类才会构建这个bean
    1. 当前的bean:ServletWebServerFactoryAutoConfiguration

2.2.1、@Conditional(OnClassCondition.class)

在这里插入图片描述

  1. 按照一定的条件进行判断,满足条件给容器注册bean。

  2. @ConditionalOnClass

    1. 只有当指定的类在类路径存在时,标注该注解的组件才会被装配。
    2. 实际上是通过ClassLoader#loadClass(className) 或者 Class.forName(className) 方法判断类是否在类路径存在的。

    在这里插入图片描述

2.2.2、类似的注解

  1. @ConditionalOnBean
    1. 仅仅在当前上下文中存在某个对象时,才会实例化一个Bean
  2. @ConditionalOnClass
    1. 某个class位于类路径上,才会实例化一个Bean
  3. @ConditionalOnExpression
    1. 当表达式为true的时候,才会实例化一个Bean
  4. @ConditionalOnMissingBean
    1. 仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean
  5. @ConditionalOnMissingClass
    1. 某个class类路径上不存在的时候,才会实例化一个Bean
  6. @ConditionalOnNotWebApplication
    1. 不是web应用,才会实例化一个Bean

2.3、@ConditionalOnWebApplication(type = Type.SERVLET)

  1. 如果当前项目是一个Web应用时(servlet),才会实例化一个Bean

2.4、@EnableConfigurationProperties(ServerProperties.class)

  1. 让 @ConfigurationProperties注解的类生效。

2.5、@ConditionalOnMissingFilterBean(ForwardedHeaderFilter.class)

  1. ForwardedHeaderFilter的对象不存在时,才会实例化一个Bean

2.6、@ConditionalOnProperty(value = “server.forward-headers-strategy”, havingValue = “framework”)

  1. 控制配置类是否生效,可以将配置与代码进行分离,实现了更好的控制配置.
  2. 通过havingValue与配置文件中的值对比,返回为framework则配置类生效,反之失效.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值