【SpringBoot学习】SpringBoot的自动配置

2023-11-01

SpringBoot自动配置

@SpringBootApplication是一个复合注解,其中主要包含以下注解:

  • @SpringBootConfiguration //基本是属于替代品 @Configuration
  • @EnableAutoConfiguration //基于SpringBoot引入的依赖判断需要的配置项,并自动配置
  • @ComponentScan(excludeFilters =
    {@Filter(type = FilterType.CUSTOM,classes = {TypeExcludeFilter.class}),
    @Filter(type = FilterType.CUSTOM,classes = {AutoConfigurationExcludeFilter.class})}
    )

包扫描注解,有scanBasePackages和scanBasePackageClasses

1.scanBasePackages (常用)
可以指定多个包名进行扫描
2.scanBasePackageClasses
可以指定多个类或接口的class,扫描时会 在这些指定的类和接口所属的包进行扫面。

SpringBoot自动配置生效的条件

在查看WebMvcAutoConfiguration的自动配置类有以下4个注解

  • @Configuration:声明这个类是一个配置类
  • @ConditionalOnWebApplication(type = Type.SERVLET)
    ConditionalOn,翻译就是:在某个条件下,此处就是满足项目的类是是Type.SERVLET类型,也就是一个普通web工程。显然我们就是
  • @ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })
    这里的条件是OnClass,也就是满足以下类存在:Servlet、DispatcherServlet、WebMvcConfigurer,其中Servlet只要引入了tomcat依赖自然会有,后两个需要引入SpringMVC才会有。这里就是判断你是否引入了相关依赖,引入依赖后该条件成立,当前类的配置才会生效!
  • @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
    这个条件与上面不同,OnMissingBean,是说环境中没有指定的Bean这个才生效。其实这就是自定义配置的入口,也就是说,如果我们自己配置了一个WebMVCConfigurationSupport的类,那么这个默认配置就会失效!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【SpringBoot学习】SpringBoot的自动配置 的相关文章

随机推荐

  • [转载] 深入理解log机制

    原文 http feihu me blog 2014 insight into log 诊断日志对于定位和修复问题起着至关重要的作用 曾经很傻很天真的认为输出日志就是仅仅调用printf 或者std cerr 而已 简单的不能在简单了 这种
  • “区块链+影视”将会在影视娱乐界刮起怎样的风?

    当一种技术能够渗透到各个产业 并在各个产业都产生巨大的价值的时候 它的潜力和未来价值就会被更多人所追捧 在过去的一年时间里 区块链这一划时代的技术夺目地进入公众视野 被认为是当前最有可能带来颠覆性改变的技术 进入2018年来 区块链行业已更
  • kettle 教程(一):简介及入门

    介绍 kettle 是纯 java 开发 开源的 ETL工具 用于数据库间的数据迁移 可以在 Linux windows unix 中运行 有图形界面 也有命令脚本还可以二次开发 kettle 的官网是 https community hi
  • HCIA笔记整理

    网络基础 什么是网络 网络就是由网络连接设备通过传输介质将网络终端设备连接起来 进行资源共享 信息传递的平台 交换机 交换机是按照通信两端传输信息的需要 用人工或设备自动完成的方法把要传输的信息送到符合要求的相应路由上的技术统称 交换机的作
  • element 表单动态获取性别

    element 动态获取性别 在前端页面里总是会有根据1和2显示相应的内容 我是小白刚接触这些就感觉无能为力 找了一些资料才有了解决方法 话不多说上代码
  • Postgresql时间处理技巧,每半天,每周,每月和每5分钟统计

    一 每半天 如果有张表log bus runinfo里有一个created date是timestamp类型 如何统计12点前的数据 在 PostgreSQL 中 您可以使用 DATE TRUNC 函数和 WHERE 子句来统计特定时间范围
  • opsForList().rightPushAll 是覆盖,还是添加

    opsForList rightPushAll 是添加 这个方法将给定的所有值添加到列表的最右端 它并不会覆盖列表中已有的任何值
  • while(++i)与 while(i++)

    1 while i 是先执行i 1 再进行判断 再执行循环体 2 while i 是先判断 再执行循环体 再 1 循环结束后 while i 执行完后 i 0 while i 执行完后 i 1 测试代码1 include
  • 正大国际琪貨:做股指期货需要多少保证金?

    股指之前是大户才有机会做 因为需要的条件太高了 一般人玩不来 为什么 看看国内的股指条件 股指的保证金比例是12 14 一手股指保证金大约18万元 啥 这是什么概念 怎么这么贵 哈哈 是不是已经把很多人吓跑了 但这东西 波动的一个点值也很大
  • LSTM简单例子(MATLAB code)

    最近在学习RNN和LSTM 1 http magicly me 2017 03 09 iamtrask anyone can code lstm 2 https zybuluo com hanbingtao note 581764 3 ht
  • GLTF中的Draco编译与测试

    1 GLTF Primitive primitive里面有什么属性 Draco压缩是跟GLTF Primitive primitive息息相关的 下面是 GLTF Primitive 中常见的属性 1 GLTF Accessor indic
  • 12C++11多线程编程之原子操作std::atomic

    1 原子操作std atomic相关概念 前言 原子操作 更小的代码片段 并且该片段必定是连续执行的 不可分割 1 1 原子操作std atomic与互斥量的区别 1 互斥量 类模板 保护一段共享代码段 可以是一段代码 也可以是一个变量 2
  • Docker镜像打包及解压(内外网)

    背景 在企业中往往出现了内网不能和外网相通 不能使用docker pull命令来拉取镜像 这个时候我们就可以考虑在有所需镜像的服务器上导出镜像 再将其上传到内网服务器上 有两种方法 一种是通过容器 一种是通过镜像 其实本质是一样的 容器的实
  • Tomcat配置出错:Using CATALINA_OPTS: ““&&Tomcat启动闪退问题解决

    文章目录 前言 一 问题描述 二 定位问题 1 CMD命令启动 2 解决方法 前言 本篇问题所处环境 Tomcat 9 Java11 Win 10 一 问题描述 在安装配置Tomcat过程中 通过startup bat脚本命令启动Tomca
  • javascript 清除字符串空格

    去除字符串前后的空格 function trim str return str replace s s g 去除字符串中所有空格 function removeAllSpace str return str replace s g 用法举例
  • 服务器散列值与文件,服务器计算的散列值和客户端安全

    服务器计算的散列值和客户端安全 内容精选 换一换 执行adc命令 系统内部通过ADC与运行环境上的ADA的交互 实现文件传输 设置日志级别 心跳检测等功能 在ADC与ADA交互时 涉及使用密钥证书实现ADA 作为服务端 和ADC 作为客户端
  • Mysql 显示替换 if or

    摘要 使用Mysql的进行sql查询过程中 经常会遇到对查询结果做一些显示的替换 方式一 select if value in 0 1 2 NO YES from table name 方式二 select if value 0 or va
  • spring事务的7种传播行为——详细介绍

    目录 事务传播行为 1 PROPAGATION REQUIRED 2 PROPAGATION SUPPORTS 3 PROPAGATION MANDATORY 4 PROPAGATION MANDATORY 5 PROPAGATION NO
  • js开发技巧-实用型

    目录 1 按位或 2 按位与 3 按位取反 4 按位异或 5 6 toString 7 gt 和 lt 8 Number EPSILON
  • 【SpringBoot学习】SpringBoot的自动配置

    SpringBoot自动配置 SpringBootApplication是一个复合注解 其中主要包含以下注解 SpringBootConfiguration 基本是属于替代品 Configuration EnableAutoConfigur