一、导览
本文主要介绍以下几部分:
1. 什么是Spring Boot?
2. 为什么使用Spring Boot?
3. Spring Boot提供哪些功能?
4. Spring Boot有哪些模块?
5. 如何使用Spring Boot?
6. Spring Boot有哪些不足?
二、什么是Spring Boot?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式(继承starter,约定优先于配置)来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot并不是一个框架,从根本上将,它就是一些库的集合,maven或者gradle项目导入相应依赖即可使用Spring Boot,而且无需自行管理这些库的版本。
目前最新的稳定版本是1.3.6.RELEASE,github地址:https://github.com/spring-projects/spring-boot
三、为什么使用Spring Boot?
Spring Boot是为简化Spring项目配置而生,使用它使得jar依赖管理以及应用编译和部署更为简单。Spring Boot提供自动化配置,使用Spring Boot,你只需编写必要的代码和配置必须的属性。
使用Spring Boot,只需20行左右的代码即可生成一个基本的Spring Web应用,并且内置了tomcat,构建的fat Jar包通过java -jar就可以直接运行。
如下特性使得Spring Boot非常契合微服务的概念,可以结合Spring Boot与Spring Cloud和docker技术来构建微服务并部署到云端:
- 一个可执行jar即为一个独立服务
- 很容易加载到容器,每个服务可以在自己的容器(例如docker)中运行
- 通过一个脚本就可以实现配置与部署,很适合云端部署,并且自动扩展也更容易
简单而言,即Spring Boot使编码更简单,使配置更简单,使部署更简单,使监控更简单。
四、Spring Boot提供哪些功能?
1.无需手动管理依赖jar包的版本
Spring boot通过spring boot starter项目管理其提供的所有依赖的版本,当升级spring boot时,这些依赖的版本也会随之升级。个人无需指定版本号,但是也可以自定义版本号覆盖springboot的默认值。每个版本的boot都有对应的base spring version,不建议明确地指定spring版本。
例如,使用maven时,只需简单的在pom中包含spring-boot-starter-web即引入了Spring MVC和Tomcat的依赖。
下面是Spring Boot在 org.springframework.boot 组下提供的一些Starters:
名称 | 描述 |
---|---|
spring-boot-starter | 核心Spring Boot starter,包括自动配置支持,日志和YAML |
spring-boot-starter-actuator | 生产准备的特性,用于帮你监控和管理应用 |
spring-boot-starter-web | 对全栈web开发的支持,包括Tomcat和 spring-webmvc |
spring-boot-starter-aop | 对面向切面编程的支持,包括 spring-aop 和AspectJ |
spring-boot-starter-data-jpa | 对”Java持久化API”的支持,包括 spring-data-jpa , spring-orm 和Hibernate |
spring-boot-starter-jdbc | 对JDBC数据库的支持 |
spring-boot-starter-security | 对 spring-security 的支持 |