共计 1089 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | 面试的时候经常会被问到,spring 和 springboot 的区别。或者 SpringMVC 和 Springboot 的区别。其实这样的问法就不是特别合适。因为 spring、springboot、springmvc 他们三个在 spring 体系中就不在同一个维度。 |
一、看一下 spring 的全部项目
spring 家族 有很多项目,springboot、spring framework、spring cloud 等。
我们常用的也就是,springboot、springcloud、springsecurity、springdata。常说的 springmvc 只是 spring framework 的特性之一。
二、springboot 核心能力
1、内嵌 Servlet 容器,可以直接打成 jar 包,通过 java -jar xx.jar 运行项目。
2、提供 starter pom 系列,简化 maven 的依赖加载,减少依赖冲突的发生。
3、支持自动化配置,如下图。application.properties 文件在引入 springboot 和未引入 springboot 时,是不一样的。
实现的源码:springboot 回去判断引入的 jar 包是否有 spring.factories 文件
@EnableAutoConfiguration
@Import({AutoConfigurationImportSelector.class})
protected List getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {List configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");
return configurations;
}
总结:springboot 是 spring 家族的一个项目,他的目标是提高使用者的开发效率。
正文完
星哥玩云-微信公众号