Spring Boot重要模块
Spring Boot项目已经托管在github上,https://github.com/spring-projects/spring-boot
以下是对该项目README.md文件的简单翻译,可从中了解Spring Boot提供哪些重要模块:
Spring Boot使得创建基于Spring的产品级的应用和服务变得很简单,他会使用最少的成本。它基于Spring的平台,无论是新的或者是老得用户都能快速的进行开发。
你可以使用Spring Boot创建独立的java应用使用java -jar启动,,或者更多传统的war包部署。我们也提供命令行工具Spring Boot CLI
可以运行Spring的脚本。
我们的目标:
- 快速构建
- 开箱即用,也可以进行快速自定义适配
- 提供大量非功能性的特性。(嵌入式的服务器,安全,度量,健康检查,外部化的配置)。
- 完全没有代码生成,也不需要XML的配置
从源码构建 Spring Boot
想要获取SpringBoot最新的特性,可以使用Maven Wapper对源代码进行构建。
模块
下面是Spring Boot 模块的介绍:
spring-booot
主要的库,提供Spring Boot其他部分的支持:
- SpringApplication类,提供了静态便捷的run方法,让我们容易编写独立的Spring 应用。它唯一的工作就是创建并且刷新一个Spring ApplicationContext。
- 可选择的嵌入式的web应用(Tomcat,Jetty,或Undertow),性能最好的是
Undertow
- 一级类外部化的配置支持,(把配置信息放在项目之外)
- 便捷的ApplicationContext初始化器,包含日志的支持。
spring-boot-autoconfigure
Spring Boot可以基于classpath进行大量的常见应用的配置。只要添加@EnableAutoConfiguration注解就会触发Spring 上下文的自动装配
Auto-configuration会尝试推断用户需要哪些Beans。例如:如果HSQLDB在classpath中,并且用户没有配置任何的数据库连接,那么它可能想要一个内存数据库被定义。
Auto-configuration总是在用户主动定义的Beans的优先级之后。
spring-boot-starters
Starters是一些你能够包含在你应用中的便捷的依赖的描述符 。你可以获得一个一站式的商店针对所有的Spring和一些相关技术,无需再通过粘贴一些示例代码和加载依赖描述符。例如:如果你想要获得Spring和JPA对数据库进行访问,那么你只需要包含spring-boot-starter-data-jpa
依赖到你的项目中,然后你就能够很好的运行。
spring-boot-cli
Spring命令行应用程序编译和运行Groovy源代码,使得编写更少的代码得到一个运行的应用程序变得超级简单。 Spring CLI还可以去观测文件,自动的重新编译,当文件改变的时候重新启动。
spring-boot-actuator
Actuator端点可以让你去监控并且与应用进行交互。Spring Boot Actuator为actuator端点提供了必要的基础设施。它包含了端点的注解支持,开箱即用。这个模块包含了大量的端点,包括了健康端点,环境端点,Beans端点和其他。
spring-boot-actuator-autoconfigure
它提供了端点的自动配置基于classpath的内容。比如,如果Micrometer在classpath上,他会自动配置MetricsEndpoint。他也包含了通过HTTP或者JMX的方式去公开端点。就像Spring Boot AutoConfigure,如果用户显示的配置他们的beans的话,这个自动配置就不会再起作用。
spring-boot-test
这个模块包含了测试相关的注解,用来测试你的应用。
spring-boot-test-autoconfigure
提供了基于classpath对test的自动配置
spring-boot-loader
提供了一种秘密的东西允许你构建一个单独的jar文件,通过java -jar命令来运行,一般的你不需要直接使用spring-boot-loader,但是需要在Gradle和Maven插件中使用。
spring-boot-devtools
提供了额外的开发阶段的特性,比如自动重启,更加平滑的开发体验。自动的被禁用,当我们运行一个完整的打包好的应用程序。