Spring Boot
定义
从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。Spring Boot使用“习惯优于配置”的理念让你的项目快速地运行起来,使用Spring Boot很容易创建一个能独立运行、准生产级别、基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。
简而言之,Spring Boot本身并不提供Spring的核心功能,而是作为Spring的脚手架框架,以达到快速构建项目、预置三方配置、开箱即用的目的。
主要意义
Spring boot能简化我们之前采用Spring MVC+Spring+MyBatis(ssm)框架进行开发的过程;
优点
- 可以快速构建项目;
- 可以对主流开发框架的无配置集成;
- 项目可独立运行,无需外部依赖Servlet容器;
- 提供运行时的应用监控;
- 可以极大地提高开发、部署效率;
- 可以与云计算天然集成。
核心
起步依赖
定义
告诉Spring boot需要什么功能,它就能引入需要的依赖库
起步依赖就是特殊的Maven依赖,利用了传递依赖解析,把常用库聚合在一起,组成几个为特定功能而定制的依赖。
具体
Spring Boot就可以指定基于功能依赖。
Spring Boot通过起步依赖为项目的依赖管理提供帮助。
如果应用程序是Web应用程序(功能),不需要向项目pom.xml文件中添加一堆单独的依赖,可以直接向项目中添加Web起步依赖。
添加依赖时不需要指定依赖的版本号,依赖的版本号由当前是使用的Spring Boot版本号来决定。
自动配置
定义
自动配置就是通过注解来对一些常规的配置做了默认配置,简化了各种xml的配置内容。
针对很多Spring应用程序和常见的应用功能,Spring boot能自动提供相关配置
实现方式
- 在启动类中可以看到@SpringBootApplication注解,它是SpringBoot的核心注解,也是一个组合注解。这个注解里面又包含了很多其他注解,其中@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan尤为重要。
- @EnableAutoConfiguration注解是springboot自动配置的核心注解,就是因为有这个注解存在就会把例如事务,缓存,aop,mvc等功能自动导入到springboot工程中,Spring框架提供的各种名字为@Enable开头的Annotation定义,比如@EnableScheduling、@EnableMBeanExport等,@EnableAutoConfiguration的理念和做事方式其实一脉相承,简单概括一下就是,借助@Import的支持,收集和注册特定场景相关的bean定义。