作者:Java技术栈

链接:https://www.jianshu.com/p/11c54edc2d11

学习 Spring Boot 必须得了解它的核心模块,和 Spring 框架一样,Spring Boot 也是一个庞大的项目,也是由许多核心子模块组成的。

你所需具备的基础

  • 告诉你,Spring Boot 真是个牛逼货!
  • Spring Boot 核心配置文件详解
  • Spring Boot 开启的 2 种方式
  • Spring Boot 自动配置原理、实战
  • Spring Boot 2.x 启动全过程源码分析

更多请在Java技术栈微信公众号后台回复关键字:boot。

Spring Boot 的核心模块

下面我们大概来了解一下 Spring Boot 的核心模块。

1、spring-boot

这是 Spring Boot 的主模块,也是支持其他模块的核心模块,主要包含以下几点:

  1. 提供了一个启动 Spring 应用的主类,并提供了一个相当方便的静态方法,它的主要是作用是负责创建和刷新 Spring 容器的上下文;
  2. 内嵌式的并可自由选择搭配的 WEB 应用容器,如:Tomcat, Jetty, Undertow等;
  3. 对配置外部化的支持;
  4. 提供一个很方便的 Spring 容器上下文初始化器,包括合理记录日志默认参数的支持。

2、spring-boot-autoconfigure

Spring Boot能根据类路径下的内容自动一些公共大型应用,提供的 @EnableAutoConfiguration 注解就能启用 Spring 功能的自动配置。

自动配置功能可以推断用户可能需要加载哪些 Spring Bean, 如:如果类路径下有 HicariCP 这个连接池的包,此时并未提供任何有效连接池的配置,那么 Spring Boot 就知道你可能需要一个连接池,并做相应配置。如果用户配置了其他连接池,那么 Spring Boot 会放弃自动配置。

3、spring-boot-starters

Starters,我们叫它启动器好了,它是包括一系列依赖的描述符。简单的说就是,它可以一站式的帮你打包 Spring 及相关技术应用,而不需要你到处找依赖和示例配置代码,它都帮你做好了。

例如,第一章我们在介绍 Spring Boot 的时候就说了 spring-boot-starter-web 这个启动器,你只要引用了这个启动器应用,就会自动配置 WEB 应用的能力。

spring-boot-starters 这个启动器这主要提供了 spring-boot, spring-context, spring-beans 这三个 Spring 模块而已。

4、spring-boot-cli

这是 Spring Boot 的命令行工具,用于编译和运行 Groovy 源程序,可以十分简单的编写并运行一个应用程序。它也能监控你的文件,一旦有变动就会自动重新编译和重新启动应用程序。

5、spring-boot-actuator

这是 Spring Boot 提供的执行端点,你可以更好的监控及和你的应用程序交互。这个模块提供了像健康端点、环境端点、Spring Bean端点等。

6、spring-boot-actuator-autoconfigure

这个原理同上,为 Spring Boot 执行端点提供自动配置。

7、spring-boot-test

Spring Boot测试模块,为应用测试提供了许多非常有用的核心功能。

8、spring-boot-test-autoconfigure

这个原理同上,为 Spring Boot 测试模块提供自动配置。

9、spring-boot-loader

这个模块可以用来构建一个单独可执行的 jar 包,使用 java -jar 就能直接运行。一般不会直接使用这个来打包,使用 Spring Boot 提供的 Maven 或者 Gradle 插件就行了。

10、spring-boot-devtools

开发者工具模块,主要为 Spring Boot 开发阶段提供一些特性,如修改了代码自动重启应用等。这个模块的功能是可选的,只限于本地开发阶段,当打成整包运行时这些功能会被禁用。

spring boot 核心_Spring Boot 的 10 个核心模块相关推荐

  1. spring cloud入门_Spring Boot 2.x基础教程:快速入门

    简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot ...

  2. druid 连接池的释放 配合上spring bean销毁_spring boot基于DRUID数据源密码加密及数据源监控实现...

    项目源码路径:https://github.com/Syske/learning-dome-code.git 前言 随着需求和技术的日益革新,spring boot框架是越来越流行,也越来越多地出现在 ...

  3. spring boot 缓存_Spring Boot 集成 Redis 实现数据缓存

    Spring Boot 集成 Redis 实现数据缓存,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作. 在这个例子中我使用的是 Redis,其实缓存类型还有很多,例如 Ecache. ...

  4. spring boot注释_Spring Boot中的@SpringBootConfiguration注释

    spring boot注释 Spring Boot中的 @SpringBootConfiguration注释是一个类级别的注释,它指示此类提供了应用程序配置. 通常,具有main()方法的类最适合此注 ...

  5. spring boot简介_Spring Boot简介

    spring boot简介 在本教程中,我们将看一下Spring Boot,看看它与Spring框架有何不同. 我们还将讨论Spring Boot提供的各种功能. 什么是Spring Boot? 在开 ...

  6. spring boot示例_Spring Boot完成示例

    spring boot示例 这篇文章提供了一个使用Spring Boot开发松耦合的REST服务的完整示例. 使用spring boot,我们可以开发可独立运行的生产就绪的Java应用程序,使其成为独 ...

  7. spring boot组件_Spring Boot Framework的关键组件和内部

    spring boot组件 In my previous post "Introduction to Spring Boot", we have discussed about S ...

  8. spring boot缓存_Spring Boot和缓存抽象

    spring boot缓存 缓存是大多数应用程序的主要组成部分,只要我们设法避免磁盘访问,缓存就会保持强劲. Spring对各种配置的缓存提供了强大的支持 . 您可以根据需要简单地开始,然后进行更多可 ...

  9. spring boot示例_Spring Boot上的Spring社交示例,或者我如何停止担心和喜欢自动配置...

    spring boot示例 对于Spring Boot 1.1.0.RC1,添加了自动配置和Spring Social的启动程序pom,这意味着我不必向pom添加一百个依赖关系,并且将为我处理许多毫无 ...

最新文章

  1. Oracle 查看sql语句执行计划方法
  2. 关于iis中的网站,在ie下点击服务器控件无反应的问题
  3. zjnu1730 PIRAMIDA(字符串,模拟)
  4. c语言到底写什么系统,用C语言写关于操作系统的一个问题。
  5. bzoj3159 决战
  6. 数据链路层点到点通讯和PPP协议
  7. 解析Java的JNI编程中的对象引用与内存泄漏问题
  8. 跟着锅子一步步学习32位汇编(1)---第一个汇编程序
  9. java 设计模式 抽象工厂_Java设计模式----------抽象工厂模式
  10. cesium 漫游飞行_cesium 之三维漫游飞行效果实现篇(附源码下载)
  11. 一张图了解大数据概念,大数据应用场景总结
  12. 计算机网络双绞线和交叉线的区别,直连线和双绞线有什么区别?
  13. 小工具--理财计算器
  14. ad16自动布线设置规则_AD16快捷方式和常规设置
  15. 西游记中泾河龙王泄露天机惨遭砍头,而袁守诚为何安然无恙
  16. 最好的Google表格插件
  17. 单片机加减法计算器_十进制加减法计算器单片机设计.doc
  18. matlab ild,10GBASE-KR
  19. python进程池(子进程)函数没有执行
  20. 清东陵的三次大规模盗掘

热门文章

  1. java中类和实例化_Java中类的初始化与实例化
  2. vsftpd的基于pam_mysql的虚拟用户机制实现数据传输
  3. WebSocket使用sendObject(Object arg0)向页面方法发送对象
  4. feignClient的使用
  5. 《Kotlin从零到精通Android开发》资源下载和内容勘误
  6. Android开发笔记(一百五十一)WebView与JavaScript交互的四种形式
  7. 画一个空心圆_圆形在PPT中的6大妙用,每一个都能瞬间提升PPT的逼格!
  8. 一文看懂大数据领域的六年巨变
  9. 52.puppet自动化运维工具
  10. 你自认为了解微信小程序?醒醒吧!