Springboot源码分析
文章平均质量分 92
这里是Springboot源码分析系列课程
分享牛
BPM推广者,核心开发人员。盘
展开
-
多数据源设计
flowable 6.0.0版本于2017年2月15日正式发布了。关于flowable的几篇文章如下: 盘古工作流引擎体验地址:盘古工作流flowable正式版flowable appModelflowable节点撤销flowable-rest使用ad-hoc子流程使用flowable-task使用flowa...原创 2017-02-16 08:58:12 · 3606 阅读 · 0 评论 -
springboot源码分析14-事件发布机制以及应用监听器
摘要:事件驱动模型,也就是我们经常提到用到的观察者模式。当然也可以将其理解为发布-订阅模型。具体的实现要素有如下几个方面。1、首先是一对多的关系,一是目标对象,多则是观察者对象。比如报社是一个,而订报者是多个。2、当目标对象的行为发生变化的时候,多个观察者对象会级联触发并做出相应的处理。换言之,目标对象的行为发生变化的时候,只需要通知一下所有的观察者对象(订阅过的)即可。具体的各个观察者怎么去处理原创 2017-12-16 11:49:48 · 5741 阅读 · 0 评论 -
Java 实体类操作
摘要:从本文开始我们会详细讲解springboot中一系列的事件监听器的使用以及内部实现原理,本文暂且讲解最简单的一个监听器,那就是文件编码监听器-FileEncodingApplicationListener。 盘古工作流引擎体验地址:盘古工作流FileEncodingApplicationListener类相关源码如下:public class FileEncodingApp...原创 2017-12-19 14:47:26 · 1178 阅读 · 0 评论 -
Springboot集成Swagger2
摘要:在项目开发中,往往期望做到前后端分离,也就是后端开发人员往往需要输出大量的服务接口,接口的提供方无论是是Java还是PHP等语言,往往会要花费一定的精力去写接口文档,比如A接口的地址、需要传递参数情况、返回值的JSON数据格式以及每一个字段说明、当然还要考虑HTTP请求头、请求内容等信息。随着项目的进度快速高速的迭代,后端输出的接口往往会面临修改、修复等问题,那也意味着接口文档也要进行相应的原创 2017-12-12 10:14:01 · 6803 阅读 · 0 评论 -
Springboot中PropertySource注解的使用
摘要:本文重点讲解一下Spring中@PropertySource注解的使用,如何通过PropertySource注解加载指定的配置文件。以及PropertySource注解与@ConfigurationProperties两个注解的配合使用。1.1. PropertySource注解加载指定的属性文件Spring框架提供了PropertySource注解,目的是加载指定的属性文件,接下来我们看一原创 2017-12-13 13:59:08 · 138228 阅读 · 5 评论 -
springboot源码分析14-ApplicationContextInitializer原理Springboot中PropertySource注解多环境支持以及原理
摘要:Springboot中PropertySource注解的使用一文中,详细讲解了PropertySource注解的使用,通过PropertySource注解去加载指定的资源文件、然后将加载的属性注入到指定的配置类,@value以及@ConfigurationProperties的使用。但是也遗留一个问题,PropertySource注解貌似是不支持多种环境的动态切换?这个问题该如何解决呢?我们原创 2017-12-14 11:32:08 · 5550 阅读 · 2 评论 -
springboot源码分析11-ApplicationContextInitializer原理
摘要:springboot源码分析10-ApplicationContextInitializer使用一文中,我们详细地讲解了ApplicationContextInitializer的三种使用方式,本文我们重点看一下为何这三种方式都可以使用,也就是框架是如何处理的。包括内置的ContextIdApplicationContextInitializer、DelegatingApplicationC原创 2017-12-07 10:08:32 · 4354 阅读 · 1 评论 -
springboot源码分析9-random的使用以及原理
摘要:springboot框架为我们提供了很多的便利,其中有一个非常有意思的功能,那就是可以通过变量的方式来配置一个随机数random,然后使用random随机出各式各样数值。本位重点讲解一下random的使用以及框架内部的实现机制。1.1. Springboot中random的使用首先我们定义一个配置类,如下所示:1 @Component2 public class Config {3 @Va原创 2017-12-06 09:28:46 · 3385 阅读 · 0 评论 -
springboot源码分析10-ApplicationContextInitializer使用
摘要:spring中ApplicationContextInitializer接口是在ConfigurableApplicationContext刷新之前初始化ConfigurableApplicationContext的回调接口。当spring框架内部执行 ConfigurableApplicationContext#refresh() 方法的时候回去回调。1.1. 实现方式一首先,我们需要自定原创 2017-12-06 17:49:17 · 2514 阅读 · 0 评论 -
springboot jndi禁用
摘要:在实际项目开发中使用springboot的时候,可以使用jar包的方式运行项目,也可以将springboot项目打成war包使用。springboot war包运行可能会出现 [localhost-startStop-1] DEBUG org.springframework.jndi.JndiLocatorDelegate - Converted JNDI name [java:comp/e原创 2017-11-15 08:38:23 · 10018 阅读 · 1 评论 -
springboot源码分析1-springboot版本号获取
摘要:在使用springboot的时候,可能经常会忽略掉springboot的版本问题。本文我们看一下springboot jar包中定义的版本信息以及版本获取类。本文内容相对而言比较简单。 1.java中定义项目的版本回想一下在java中如何定义项目的版本。这个比较简单,只需要在jar包增加MANIFEST.MF文件(根目录)并添加的如下内容即可: Manifest-Version: 1原创 2017-11-24 14:49:38 · 12862 阅读 · 1 评论 -
springboot源码分析2-springboot 之banner定制以及原理
1. springboot源码分析2-springboot 之banner定制以及原理springboot在启动的时候,默认会在控制台输出默认的banner。也就是我们经常所说的图案,输出的图案如下所示: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_原创 2017-11-24 19:12:33 · 3842 阅读 · 0 评论 -
springboot源码分析3-springboot之banner类架构以及原理
继续上文的springboot源码分析2-springboot 之banner定制以及原理章节>>进行讲解,上一节我们详细详解了banner的三种输出模式、banner的输出模式设置、banner类的架构、SpringApplicationBannerPrinter类、ImageBanner以及TextBanner的处理方式。本小节我们来重点讲解一下各种banner处理类的相关实现逻辑以及设计意图原创 2017-11-25 18:44:42 · 1965 阅读 · 0 评论 -
springboot源码分析4-springboot之SpringFactoriesLoader使用
摘要:本文我们重点分析一下Spring框架中的SpringFactoriesLoader类以及META-INF/spring.factories的使用。在详细分析之前,我们可以思考一个问题?在我们设计一套API供别人调用的时候,如果同一个功能的要求特别多,或者同一个接口要面对很复杂的业务场景,这个时候我们该怎么办呢?其一:我们可以规范不同的系统调用,也就是传递一个系统标识;其二:我们在内部编码的时原创 2017-11-27 12:31:06 · 17404 阅读 · 3 评论 -
springboot源码分析5-springboot之命令行参数以及原理
摘要:本文我们重点分析一下Springboot框架中的命令行参数的使用以及框架内部处理的命令行参数的原理。众所周知,springboot项目可以有两种方式启动,第一种使用jar包;第二种使用war包。在使用jar方式的时候,我们可以在启动jar包的时候设置一些命令参数。1.1 命令行参数使用首先我们看一下如何使用在项目启动的时候设置命令行参数以及值。我这里使用的开发工具是Spring Tool S原创 2017-11-29 11:43:43 · 9454 阅读 · 0 评论 -
springboot源码分析6-springboot之PropertySource类初探
摘要:本小节重点梳理一下PropertySource类的相关结构以及职责,本文的学习前提是学习了springboot源码分析5-springboot之命令行参数以及原理一文。在springboot源码分析5-springboot之命令行参数以及原理一文中,我们看到了实例化Source类的时候,会去先实例化其父类SimpleCommandLinePropertySource。SimpleComman原创 2017-11-30 15:19:54 · 3536 阅读 · 0 评论 -
springboot源码分析7-环境属性构造过程(上)
使用springboot的目的就是在项目开发中,快速出东西,因此springboot对于配置文件的格式支持是非常丰富的,最常见的配置文件后缀有如下四种:properties、xml、yml、yaml,比如我们在springboot项目根目录中配置了一个application.properties文件,则springboot项目启动的时候就会自动将该文件的内容解析并设置到环境中,这样后续需要使用该文原创 2017-11-30 17:30:03 · 4033 阅读 · 1 评论 -
springboot源码分析8-环境属性构造过程(下)
上一文springboot源码分析7-环境属性构造过程(上)中详细讲解了springboot环境的各种初始化操作。本文我们继续探讨一下环境的一些知识点。首先,我们看一下抽象基类AbstractEnvironment。该类中的构造函数如下:1 private final MutablePropertySources propertySources = new MutablePropertySourc原创 2017-12-04 09:26:28 · 1191 阅读 · 0 评论