前言:Spring Boot旨在简化Spring的开发,因此学习Spring Boot的时候就不可避免需要涉及到Spring的方方面面。Spring Boot将很多魔法带入了Spring应用程序的开发之中,在spring Boot中有四个特别重要的内容:分别是自动配置、起步依赖、命令行界面和Actuator。同时Spring Boot也将改变我们传统的开发方式,将我带入微服务的世界。
- 自动配置
针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。 -
起步依赖
告诉Spring Boot需要什么功能,它就能引入需要的库。 -
命令行界面
这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,
无需传统项目构建。 -
Actuator
让你能够深入运行中的Spring Boot应用程序,一探究竟。
对于上述的特性在后续通过不同的实践来进一步深理解。另外由于Spring Boot拥有很多令人感动神奇便捷的能力特性,往往会让人对其产生一些误解:
- 误解1:Spring Boot是一个应用服务器
Spring Boot不是应用服务器。虽然Spring Boot可以把Web应用程序变为可自执行的JAR文件,不用部署到传统Java应用服务器里就能在命令行里运行。但实际上是Spring Boot在应用程序里嵌入了一个Servlet容器(Tomcat、Jetty或Undertow),以此实现这一功能。内嵌的Servlet容器提供的功能,不是Spring Boot实现的。
- 误解2 Spring Boot实现了JPA或JMS
Spring Boot没有实现诸如JPA或JMS(Java Message Service,Java消息服务)之类的企业级Java规范。但它的确是支持不少企业级Java规范,需要在Spring里自动配置支持那些特性的Bean。例如,Spring Boot没有实现JPA,不过它自动配置了某个JPA实现(比如Hibernate)的Bean,以此支持JPA。
- 误解3 Spring Boot实现了代码生成
实际上Spring Boot并没有引入任何形式的代码生成,而是利用了Spring 4的条件化配置特性,以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置。
其实从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。因为有了Spring这个”巨人”,我们就不用再写这些样板配置了,可以专注于应用程序的逻辑,这些才是应用程序独一无二的东西。