Spring Boot 发布于2014年,目前最新版本2.x。
Spring致力于简化Java开发, 而Spring Boot致力于让Spring本身更加简单。
Spring Boot用了两个技巧来消除Spring项目中的样板式配置: Spring Boot Starter和自动配置
一、添加Starter依赖
Spring Boot Starter将应用所需的各种依赖聚合成一项依赖。就好比有两种做蛋糕的方式,一种是将面粉鸡蛋糖牛奶等原材料混成糊状,另一种是直接买配好材料的半成品,回来只需要加水。
比如要从头写一个Spring Web项目,需要使用Spring MVC、JSON库、JDBC模块、Tomcat等,使用Spring需要至少包含上述依赖。
但是, 如果我们使用Spring Boot Starer所提供的预打包依赖的话,只需要引入spring-boot-starter-web和spring-boot-starter-jdbc。
Spring Boot提供了多个Starter,以Web和JDBC为例,下面说明各Starter所提供的依赖
Starter | 所提供的依赖 |
---|---|
spring-boot-starter-web | spring-boot-starter、 spring-boot-starter-tomcat、 jackson-databind、 spring-web、 spring-webmvc |
spring-boot-starter-jdbc | spring-boot-starter、 spring-jdbc 、 tomcat-jdbc、 spring-tx |
当我们将某一个Starter依赖添加到Maven构建中的时候, Starter的依赖将会自动地传递性解析。 这些依赖本身可能也会有其他的依赖。 一个Starter可能会传递性地引入几十个依赖。
二、自动配置
Spring Boot的Starter减少了构建中依赖列表的长度, 而Spring Boot的自动配置功能则削减了Spring配置的数量。
它避免了编写大量的样板代码,注释和XML配置。
它遵循“自用默认配置”方法,以减少开发工作量。
Spring Boot会根据我们项目中类路径的jar包/类,为jar包的类进行自动配置Bean,这样一来就大大的简化了我们的配置。