Spring Boot 的 10 个核心模块
学习 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 文章请在Java技术栈微信公众号后台回复关键字:boot。
本文原创首发于微信公众号:Java技术栈(id:javastack),关注公众号在后台回复 "boot" 可获取更多,转载请原样保留本信息。
Spring Boot 的 10 个核心模块的更多相关文章
- spring boot编程思想(核心篇) pdf 下载 it教程
资料简介:本书是<Spring Boot 编程思想>的核心篇,开篇总览Spring Boot核心特性,接着讨论自动装配(Auto-Configuration)与SpringApplicat ...
- Spring Boot 梳理 - 4个核心
Spring Boot 魔法的核心:自动配置.起步依赖.命令行界面.Actuator 自动配置: 不用手动配置JdbcTemplate的Bean 不用手动配置DataSource的Bean Sprin ...
- Spring Boot 中 10 行代码构建 RESTful 风格应用
RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念,我这里就不做过多介绍了,传统的 Struts 对 RESTful 支持不够友好 ,但是 SpringMVC 对于 ...
- spring boot 学习10 定义springboot的两种方法
使用spring boot的两种方法: A:继承spring-boot-starter-parent项目 这种方式很简单,只需要在POM里面添加parent父工程即可. B: 如果你不喜欢继承spri ...
- Spring Boot使用mongo的GridFS模块
1. GridFS简介 GridFS是Mongo的一个子模块,使用GridFS可以基于MongoDB来持久存储文件.并且支持分布式应用(文件分布存储和读取).作为MongoDB中二进制数据存储在数据库 ...
- 【spring boot】10.spring boot下的单元测试
spring boot下的单元测试,思前想后还是需要单独用一章篇幅来看看. 然后在看了介绍和使用时候,我感觉并不想多去看了. 但是还是给后来人留下参考的路径: 官网说明:https://spring. ...
- Spring Boot分布式系统实践【基础模块构建3.3】注解轻松实现操作日志记录
日志注解 前言 spring切面的编程,spring中事物处理.日志记录常常与pointcut相结合 * * Pointcut 是指那些方法需要被执行"AOP",是由"P ...
- Spring Boot中的AutoConfiguation核心注解
import org.springframework.boot.autoconfigure.condition.*; @ConditionalOnBean // 当容器中有指定bean的条件下 @Co ...
- 高性能Web服务器Nginx的配置与部署研究(10)核心模块之HTTP模块Location相关指令
一.基本语法 语法:location [= | ~ | ~* | ^~] </uri/> {...} 缺省:N/A 作用域:server 二.匹配规则 1. 四种匹配方式 = 精确匹配 ~ ...
随机推荐
- Codeforces 1083E The Fair Nut and Rectangles
Description 有\(N\)个左下定点为原点的矩阵, 每个矩阵\((x_i,~y_i)\)都有一个数\(a_i\)表示其花费. 没有一个矩阵包含另一个矩阵. 现要你选出若干个矩阵, 使得矩阵组 ...
- IIS Express(7.0) HTTP 错误 500.22 - Internal Server Error(vs2013)
1.错误如下: HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置. 解决的方法: 首先,找到本地appcmd.x ...
- Java和C++的数组比较
Java:数组的定义:如下两种方式都可以:int array[];int[] array; 注意:数组在定义后,不能直接使用.必须在初始化后才能使用.初始化有两种方式:1.静态初始化:int arra ...
- js url参数解析获取
function get_url_parm_list(str){ var params=str.substr(str.indexOf('?')+1); var param_list=[]; while ...
- Spark1.5.0 + Hadoop2.7.1整合
Hadoop2.7.1已经配置完毕. Hosts分配如下: master 172.16.15.140 slave1 172.15.15.141 slave2 172.16.15.142 一.安装Sca ...
- Python+Selenium基础篇-打开和关闭火狐浏览器
本节介绍如何初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打开fiefox浏览器.首先需要去下载一个driver插件geckodriver. ...
- OO第9-11作业总结
一. 规格化设计 规格化抽象,即将执行的细节抽象为用户所需求的行为(模块做什么). 主要作用在于提高工程设计中的可维护性,可读性,明确功能,使整个编程任务变得清晰有序以减少程序BUG. 说其发展历 ...
- H5新特性---Web Worker---Web Stroage
今天的目标 3.1:h5新特性八--Web Worker---代码就3行 程序:program 存储在外存(磁盘)中代码 进程:Process/Task 将程序调用内存中,分配空间 线程:Thread ...
- 实现highcharts放大缩小
原文地址:http://www.stepday.com/topic/?800 当我们将图表某个区域放大值某一个倍数后发现刻度间隔距离也放大了,由于刻度间隔还是原来初始所设定的值,从而让局部数据的X轴刻 ...
- mysql 慢日志分析
mysql 调优首先需要找到那些有问题的SQL语句. 怎么找到这些语句呢? mysql 提供了很方便的功能. 1.慢日志 在my.cnf 文件中,增加如下配置 log-error ...