默认配置类
@EnableAutoConfiguration会开启SpringBoot的自动配置,并且根据你引入的依赖来生效对应的默认配置。那么,这些默认配置是在哪里定义的呢?为何依赖引入就会触发配置呢?
其实,在我们的项目中已经引入了一个依赖:spring-boot-autoconfigure,其中定义了大量自动配置类:下面截图没截完
我们来看一个我们熟悉的,例如SpringMVC,查看mvc的自动配置类:
WebMvcAutoConfiguration源码
上面的注解中:
@ConditionalOnWebApplication(type = Type.SERVLET)ConditionalOn,就是在某个条件下,此处就是满足项目的类是Type.SERVLET类型,也就是一个普通web工程
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })
这里的条件是OnClass,也就是满足以下类存在:Servlet、DispatcherServlet、WebMvcConfigurer,其中Servlet只要引入了tomcat依赖自然会有,后两个需要引入SpringMVC才会有。这里就是判断你是否引入了相关