springboot功能解析及各个包作用以及使用场景
1、springboot源码各个包结构图2、解析说明从springboot官方网站源码下载springboot源码,下载完成后切换到某个tag版本,此处以v2.1.6RELEASE举例,下载完成后源码结构如下图所示:spring-boot-project为spring-boot核心技术包,其中包含了spring-boot所有基础源码spring-boot-samples为springboot的案例
1、springboot源码各个包结构图
2、解析说明
从springboot官方网站源码下载springboot源码,下载完成后切换到某个tag版本,此处以v2.1.6RELEASE举例,下载完成后源码结构如下图所示:
- spring-boot-project为spring-boot核心技术包,其中包含了spring-boot所有基础源码
- spring-boot-samples为springboot的案例包,在高版本后会删除此包
- spring-boot-test为springboot的测试包,包含了系统集成测试、部署测试、冒烟测试
spring-boot-project包下包含如下结构:
- spring-boot:此为springboot框架基础,其中包含了springboot应用启动,初始化,启动banner,springApplication定义、构建器API、应用程序事件和侦听器、应用程序启动跟踪、管理功能
- spring-boot-actuator:它是一个暴露自身信息的模块,提供了一个监控和管理生成环境的模块,可以使用http、jmx、ssh、telnet等管理和监控应用,引入此包后应用中会加入审计(Auditing)、 健康(health)、数据采集(metrics gathering)
- spring-boot-actuator-autoconfigure:Spring Boot Actuator 提供了额外的自动配置功能,可以在生产环境中实现可即时部署和支持的功能,从而装饰你的应用。例如,如果您正在编写 JSON Web 服务,那么它将提供服务器,安全性,日志记录,外部配置,管理端点,审计抽象等等功能。如果您想关闭内置功能,或者扩展或替换它们,它也会变得非常简单
- spring-boot-autoconfigure:提供了自动装配功能。它和spring-boot外化配置功能的区别在于,springboot是将内部定义的配置属性抽取剥离出来,能够读取外部的配置属性到内存中,而spring-boot-autoconfigure包将这些基础配置可自动装载到对应驱动文件中。@EnableAutoConfiguration注解会触发spring上下文的自动配置。在此包的底层,拥有大量的Configuration类,如下图所示:
- spring-boot-cli:Spring 命令行应用程序编译并运行 Groovy 源代码,使得可以编写少量代码就能运行应用程序。Spring CLI 也可以监视文件,当它们改变时自动重新编译并重新启动
- spring-boot-dependencies:空文件包,此包是对spring-boot进行了依赖管理。在构建大型微服务框架时常常会引入此包,统一对依赖包进行版本管理
- spring-boot-devtools:该模块可以让 Spring Boot 应用支持热部署,修改了配置文件服务自动重启,在实际开发过程中,引入此包后,idea开启自动编译后,ctrl + shift + alt + / --> Registry --> 勾选Compiler autoMake allow when app running ,修改完java代码后可以不重启,自动编译
- spring-boot-docs:文档说明,实际开发过程基本无使用
- spring-boot-parent:此包的父类为spring-boot-dependencies,提供了springBoot快速开发,和spring-boot-dependencies区别在于此包适合较少自定义的应用,当自己公司有自己定义的基础框架时,springboot官网建议使用spring-boot-dependencies去构架,这样有利于maven依赖版本的管理。此包源码结构图如下:
- spring-boot-properties-migrator:在 Spring Boot 2.x 中,许多配置属性被重新命名/删除,开发人员需要更新 application.properties/ application.yml 相应的配置。为了帮助你解决这一问题,Spring Boot 发布了一个新 spring-boot-properties-migrator 模块。一旦作为该模块作为依赖被添加到你的项目中,它不仅会分析应用程序的环境,而且还会在启动时打印诊断信息,而且还会在运行时为您暂时迁移属性。在您的应用程序迁移期间,这个模块是必备的,完成迁移后,请确保从项目的依赖关系中删除此模块
- spring-boot-test:测试代码模块
- spring-boot-test-autoconfigure:自动配置的测试代码
- spring-boot-tools:该模块提供了一些程序开发时的功能,比如自动重启,以获得更便捷的程序开发体验。开发人员工具在被运行被编译打包的程序时会被自动禁用。其中包含了好多项
-
spring-boot-antlib:为 Apache Ant 提供了基本的 Spring Boot 支持
-
spring-boot-autoconfigure-processor:Spring Boot 自动配置的核心类
-
spring-boot-configuration-docs:Spring Boot 配置文档
-
spring-boot-configuration-metadata:Spring Boot 配置元数据
-
spring-boot-configuration-processor:Spring Boot 配置的核心
-
spring-boot-gradle-plugin:在 Gradle 中提供了 Spring Boot 支持,可以打包成可执行 jar 或 war ,运行 Spring Boot 应用程序,并使用 spring-boot-dependencies 提供的依赖关系管理。它需要 Gradle 4.0 或更高版本
-
spring-boot-loader:通过自定义 jar 包结构,自定义类加载器,优雅的实现了嵌套 jar 资源的加载,通过打包时候重新设置启动类和组织 jar 结构,通过运行时设置自定义加载器来实现嵌套 jar 资源加载
-
spring-boot-loader-tools:spring-boot-loader 模块的工具模块
-
spring-boot-maven-plugin:Spring Boot Maven Plugin 在 Maven 中提供了 Spring Boot 支持,让您可以打包成可执行 jar 或 war 应用,并“就地”运行应用程序。要使用它,你必须使用 Maven 3.2(或更高版本)
-
spring-boot-test-support:测试相关
- spring-boot-starters:这个模块有很多 starter 子模块,平时用的也是非常多的,Starters 可以作为一组依赖配置信息放在你项目的依赖配置中。从中您可以获得所需的所有 Spring 及其相关技术的一站式服务而无需搜索项目的配置方法并复制粘贴项目所需的依赖配置信息。比如,如果你想使用 Spring JPA 作为数据库访问中间层,仅仅需要将 spring-boot-starter-data-jpa 加入你的项目依赖中, 即可使用 Spring JPA。下图以spring-boot-starters举例,由下图可知内部并无代码,只是提供了依赖引入集合
spring-boot-tests包含如下结构:
- spring-boot-deployment-tests:部署测试包
- spring-boot-integration-tests:集成测试包
- spring-boot-smoke-tests-invoker:冒烟测试包(此包高版本会有)
更多推荐
所有评论(0)