作为一个进阶的菜鸟,最近看了一些Spring Boot的文档,做一些笔记,方便日后自己查阅。
随着使用 Spring 进行开发的个人和企业越来越多,Spring 也慢慢从一个单一简洁的小框架变成一个大而全的开源软件,Spring 的边界不断的进行扩充,到了后来 Spring 几乎可以做任何事情了,市面上主流的开源软件、中间件都有 Spring 对应组件支持,人们在享用 Spring 的这种便利之后,也遇到了一些问题。
Spring 每集成一个开源软件,就需要增加一些基础配置,慢慢的随着人们开发的项目越来越庞大,往往需要集成很多开源软件,因此后期使用 Spirng 开发大型项目需要引入很多配置文件,太多的配置非常难以理解,并容易配置出错,到了后来人们甚至称 Spring 为配置地狱。
Spring 似乎也意识到了这些问题,急需有这么一套软件可以解决这些问题,这个时候微服务的概念也慢慢兴起,快速开发微小独立的应用变得更为急迫,Spring 刚好处在这么一个交叉点上,于 2013 年初开始的 Spring Boot 项目的研发,2014年4月,Spring Boot 1.0.0 发布。
首先在使用Spring Boot前必须要先弄明白几个问题:
- Spring Boot是什么
- 为什么要使用Spring Boot,它有什么好处
1.Spring Boot是什么
1.1 Spring Boot介绍
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。其实Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架。
Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。 Spring Boot 为 Spring 平台及第三方库提供开箱即用的设置。Spring Boot 的核心思想就是“约定大于配置”,多数 Spring Boot 应用只需要很少的 Spring 配置。采用 Spring Boot 可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。
1.2 Spring Boot 的特性
- 使用 Spring 项目引导页面可以在几秒构建一个项目
- 方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks
- 非常简洁的安全策略集成
- 支持关系数据库和非关系数据库
- 支持运行期内嵌容器,如 Tomcat、Jetty
- 强大的开发包,支持热启动
- 自动管理依赖
- 自带应用监控
- 支持各种 IED,如 IntelliJ IDEA 、NetBeans
2.Spring Boot的优点
2.1 简化开发
对比一下使用spring boot前后的开发一个项目所需要做的工作
2.1.1 使用前
- 1)配置 web.xml,加载 Spring 和 Spring mvc
- 2)配置数据库连接、配置 Spring 事务
- 3)配置加载配置文件的读取,开启注解
- 4)配置日志文件
- …
- n) 配置完成之后部署 tomcat 调试
2.1.2 使用后
- 1)登录网址 http://start.spring.io/ 选择对应的组件直接下载
- 2)导入项目,直接开发
仅在开发环境的搭建上就有着巨大的差别
2.2 简化测试
Spring Boot 内置了7种强大的测试框架:
- JUnit: 一个 Java 语言的单元测试框架
- Spring Test & Spring Boot Test:为 Spring Boot 应用提供集成测试和工具支持
- AssertJ:支持流式断言的 Java 测试框架
- Hamcrest:一个匹配器库
- Mockito:一个 java mock 框架
- JSONassert:一个针对 JSON 的断言库
- JsonPath:JSON XPath 库
想要使用spring boot的测试功能,我们只需要在项目中引入spring-boot-start-test
依赖包,就可以对数据库、Mock、 Web 等各种情况进行测试。Spring Boot Test 中包含了我们需要使用的各种测试场景,满足我们日常项目的测试需求。