spring boot2.1版本源码地址:https://github.com/spring-projects/spring-boot/tree/2.1.xjava
Spring Boot 包含许多模块,如下是一些简单的概述:git
为Spring Boot其余部分功能提供主要的lib包,其中包含:
(1)SpringApplication类提供了静态便利的方法使编写独立的SpringApplication更加容易.它惟一的任务就是建立和刷新一个适当的Spring ApplicationContext.
(2)为嵌入式web应用选择一个容器(Tomcat、Jetty或者Undertow)
(3)对外部化配置的支持超级好
(4)ApplicationContext初始化很方便,包含默认支持合理的日志记录github
Spring Boot能够在classpath中配置大部分公共应该程序.仅仅一个@EnableAutoConfiguration注释就能触发Spring上下文的自动配置.
自动配置尝试推断哪些用户须要哪些bean.例如,若是HSQLDB在classpath中配置,而且用户没有配置任何的数据库链接,然而他们可能想定义一个内存数据库.
当用户开始自定义本身beans时,自动配置将始终退出.web
Starters是一组方便的依赖描述符,能够包含在你的应用程序中.
你能够为全部Spring和相关技术提供一站式服务,而无需搜索示例代码并复制大量的依赖描述符.
例如,若是你想开始使用Spring和JPA访问数据库,只须要在你的项目中包含spring-boot-starter-data-jpa依赖项,而后你就能够继续.spring
spring命令行应用程序编译并运行Groovy源代码,使编写代码变的很是容易,从而使应用程序可以运行.
Spring CLI还能够监听文件,在文件更新时候自动编译和重启启动.数据库
actuator endpoints容许你监视应用程序而且与其进行交互.
spring boot actuator提供了actuator endpoints所需的基础设施.
它包含对actuator endpoints的注释支持.
这个模块提供了许多端点,包括HealthEndpoint、EnvironmentEndpoint、BeanEndpoint等等.spring-boot
这个模块为actuator endpoints提供了基于classpath内容和一组属性的自动配置.
例如,若是Micrometer是在classpath中,它将自动配置MtricsEndpoing.它包含经过HTTP或JMX配置expose endpoints.
就像Spring Boot AutoConfigure同样,当用户开始自定义本身的beans时,它将退出.工具
这个模块包含核心项和注释,在测试应用程序的时候可能会有所帮助.开发工具
像Spring Boot AutoConfigure模块,spring-boot-test-autoconfigure在classpath中为tests提供自动配置.
它包括许多注释,这些注释能够被用于自动配置须要测试的应用程序的一个片断.测试
Spring Boot Loader提供秘密武器,容许你构建一个可使用java-jar启动的jar文件.
一般状况下你不须要直接使用spring-boot-laoder,而是使用Gradle或者Maven 插件.
spring-boot-devtools模块提供开发时特性,例如自动从新启动,对于更流畅的应用开发经验.在运行完整打包的应用时,将自动禁用开发工具.