SpringBoot是对Spring框架的进一步简化,它的核心思想就是“约定大于配置”,什么意思呢?就是说,你可以给我依赖、jdk版本等进行设置,但是如果你不设置的话我也有默认的属性,但是一旦你配置了,默认的属性就失效了,这是很重要的一个思想。能给你提供配置的就不让你自己去配置。
SpringBoot是依托于配置类来实现的,所以接下来我们探索下它的使用方法吧。
目录
实现约定大于配置,注册一些默认的组件 → 自动配置类 AutoConfiguration(实际就是javaConfig在这个配置类中通过@Bean去注册组件)
@ConditionalOnXXX 👉 在xxx条件下生效
@ConditionalOnMissingXXX 👉 在XXX条件下不生效
@ConditionalOnMissingBean → 容器中没有这个组件的时候生效
@Bean
自己没有向容器中注册组件的时候生效 → @Bean注解 → 向容器中注册组件(默认组件)
如果容器中有这个组件,@Bean注解不生效,就不注册默认组件
Starter依赖
springboot应用对其他框架的支持,引入starter依赖
注意:
spring-boot-starter-xxx :官方依赖
xxx-spring-boot-starter :非官方的依赖
引入依赖
依赖的核心就是autoConfig自动配置
spring-boot-starter-web中主要就是<dependencies>标签内的
SpringBoot框架所必须的依赖以及starter或自动配置依赖(autoconfigure)
autoConfig自动配置这个帮我们提供约定大于配置,帮我们去注册默认的组件
包含一个加载/META-INF/spring.factories 获得的是一个 Map<String,List<String>>
有一个key叫EnableAutoConfiguration,对应的value就是自动配置类的列表
上图中的配置类不是全部生效
自动配置类的目的就是帮我们去注册一些组件
使用SpringBoot应用的核心方式 → 引入starter依赖、(一些内容)核心配置