Spring Boot源码中模块详解
Spring Boot源码中模块详解
一、源码
spring boot2.1版本源码地址:https://github.com/spring-projects/spring-boot/tree/2.1.x
二、模块
Spring Boot 包含许多模块,以下是一些简单的概述:
1,spring-boot
为Spring Boot其他部分功能提供主要的lib包,其中包含:
(1)SpringApplication类提供了静态便利的方法使编写独立的SpringApplication更加容易.它唯一的任务就是创建和刷新一个适当的Spring ApplicationContext.
(2)为嵌入式web应用选择一个容器(Tomcat、Jetty或者Undertow)
(3)对外部化配置的支持超级好
(4)ApplicationContext初始化很方便,包含默认支持合理的日志记录
2,spring-boot-autoconfigure
Spring Boot可以在classpath中配置大部分公共应该程序.仅仅一个@EnableAutoConfiguration注释就能触发Spring上下文的自动配置.
自动配置尝试推断哪些用户需要哪些bean.例如,如果HSQLDB在classpath中配置,并且用户没有配置任何的数据库连接,然而他们可能想定义一个内存数据库.
当用户开始自定义自己beans时,自动配置将始终退出.
3,spring-boot-starters
Starters是一组方便的依赖描述符,可以包含在你的应用程序中.
你可以为所有Spring和相关技术提供一站式服务,而无需搜索示例代码并复制大量的依赖描述符.
例如,如果你想开始使用Spring和JPA访问数据库,只需要在你的项目中包含spring-boot-starter-data-jpa依赖项,然后你就可以继续.
4,spring-boot-cli
spring命令行应用程序编译并运行Groovy源代码,使编写代码变的非常容易,从而使应用程序能够运行.
Spring CLI还可以监听文件,在文件更新时候自动编译和重启启动.
5,spring-boot-actuator
actuator endpoints允许你监视应用程序并且与其进行交互.
spring boot actuator提供了actuator endpoints所需的基础设施.
它包含对actuator endpoints的注释支持.
这个模块提供了许多端点,包括HealthEndpoint、EnvironmentEndpoint、BeanEndpoint等等.
6,spring-boot-actuator-autoconfigure
这个模块为actuator endpoints提供了基于classpath内容和一组属性的自动配置.
例如,如果Micrometer是在classpath中,它将自动配置MtricsEndpoing.它包含通过HTTP或JMX配置expose endpoints.
就像Spring Boot AutoConfigure一样,当用户开始自定义自己的beans时,它将退出.
7,spring-boot-test
这个模块包含核心项和注释,在测试应用程序的时候可能会有所帮助.
8,spring-boot-test-autoconfigure
像Spring Boot AutoConfigure模块,spring-boot-test-autoconfigure在classpath中为tests提供自动配置.
它包括许多注释,这些注释可以被用于自动配置需要测试的应用程序的一个片段.
9,spring-boot-loader
Spring Boot Loader提供秘密武器,允许你构建一个可以使用java-jar启动的jar文件.
通常情况下你不需要直接使用spring-boot-laoder,而是使用Gradle或者Maven 插件.
10,spring-boot-devtools
spring-boot-devtools模块提供开发时特性,例如自动重新启动,对于更流畅的应用开发经验.
在运行完整打包的应用时,将自动禁用开发工具.
Spring Boot源码中模块详解的更多相关文章
- Spring Boot源码(六):Bean的创建详解
继续之前的项目: People加上无参构造方法: @Component public class People { // private User user; public People(){ Sys ...
- 曹工说Spring Boot源码(17)-- Spring从xml文件里到底得到了什么(aop:config完整解析【中】)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- 曹工说Spring Boot源码(7)-- Spring解析xml文件,到底从中得到了什么(上)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- 精尽Spring Boot源码分析 - Jar 包的启动实现
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- 精尽Spring Boot源码分析 - @ConfigurationProperties 注解的实现
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- 走进Spring Boot源码学习之路和浅谈入门
Spring Boot浅聊入门 **本人博客网站 **IT小神 www.itxiaoshen.com Spring Boot官网地址:https://spring.io/projects/spring ...
- 曹工说Spring Boot源码(2)-- Bean Definition到底是什么,咱们对着接口,逐个方法讲解
写在前面的话 相关背景及资源: 曹工说Spring Boot源码系列开讲了(1)-- Bean Definition到底是什么,附spring思维导图分享 工程代码地址 思维导图地址 工程结构图: 正 ...
- Spring Boot源码分析-启动过程
Spring Boot作为目前最流行的Java开发框架,秉承"约定优于配置"原则,大大简化了Spring MVC繁琐的XML文件配置,基本实现零配置启动项目. 本文基于Spring ...
- Spring Boot源码(八):Spring AOP源码
关于spring aop的应用参见:Spring AOP-基于@AspectJ风格 spring在初始化容器时就会生成代理对象: 关于创建bean的源码参见:Spring Boot源码(六):Bean ...
随机推荐
- thrift简单示例 (go语言)
这个thrift的简单示例来自于官网 (http://thrift.apache.org/tutorial/go), 因为官方提供的例子简单易懂, 所以没有必要额外考虑新的例子. 关于安装的教程, 可 ...
- xadmin集成DjangoUeditor,以及编辑器的视频路径配置
稍微讲一下DjangoUeditor的配置,因为之前去找配置的时候东拼西凑的,所以自己写一下自己一步步配置的过程.首先我是再github上去下载下来,因为是当作第三方插件集成到xadmin中,所以不用 ...
- spring boot 过滤器、拦截器的区别与使用
原文:https://blog.csdn.net/heweimingming/article/details/79993591 拦截器与过滤器的区别: 1.过滤器和拦截器触发时机不一样,过滤器是在请求 ...
- 使用Arduino开发板连接干簧管(Reed Switch)的方法
在现实生活中,干簧管(Reed Switch)有许多重要的应用,如磁性门开关.笔记本电脑.智能手机等.在本篇文章中,我们将了解一些干簧管的知识,并介绍如何使用Arduino开发板连接干簧管. 干簧管( ...
- idea常用设置汇总
https://www.cnblogs.com/wangmingshun/p/6427088.html
- Apache Shiro<=1.2.4反序列化RCE漏洞
介绍:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 漏洞原因:因为shiro对cookie里的rememberme字段进行了反序列化,所以如果知道了 ...
- junit4的初级用法
junit4初级用法: 一:各个标签的意思 1.@Test用来标注测试函数 2.@Before用来标注此函数在每次测试函数运行之前运行(每执行一个@Test之前都要运行一遍@Before) 3.@Af ...
- css 网格布局
一.概述 网格布局(Grid)是最强大的 CSS 布局方案. 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局.以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了. 上 ...
- JMX脚本在某些机器上报错,有的运行超时
运行超时的 是因为在server端运行命令执行脚本,是server给agent下达的指定,但是server端到agent的10050端口没开,所以或一致堵死在那,知道执行超时, 解决:开通server ...
- C博客作业00——我的第一篇博客
1.你对网络专业或计算机专业了解是怎样? 初看字眼,便觉得是理工性很强的专业,所以需要较强的开拓思维,创新精神,探索未知事物的勇气,才能掌握并且熟练应用相关知识.计算机类专业都需要学习计算机语言,而计 ...