自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 SpringBoot初始化过程源码解析(八)服务器启动

onRefresh为自定义类提供了一个扩展接口,同时也创建了web服务器(如果有的话)大致流程:

2020-03-11 18:52:46 204

原创 SpringBoot初始化过程源码解析(七)bean实例化细节

在讲完了大致流程之后,我们深入到具体细节再看一下bean是如何被创建的:接着来这里: protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Object[] args) throws BeanCreationException { //...

2020-03-08 21:16:07 740

原创 SpringBoot初始化过程源码解析(六)bean实例化

直接来到bean实例化的流程:只对单例非懒加载的bean进行实例化检查是否已经创建过:先创建bean的依赖(这个似乎很少看到有人使用),然后实例化bean这用一个集合来保存已经创建过的bean:实例化一个bean的大致流程就是这样。...

2020-03-06 19:25:40 630

原创 SpringBoot初始化过程源码解析(五)自动化配置与bean信息读取

继续上一节的内容注解来到主配置类处理import的流程

2020-03-05 19:20:52 194

原创 SpringBoot初始化过程源码解析(四)ComponentScan的启动调用解析

接着上次的内容。在配置类解析器中将根据配置类的注释信息进行解析,首先拿到所有扫描包中标注了@component、@controller、@configuration的类(这里都是自己定义的),然后进行了解析(递归)。下面是一个包扫描的过程:这里我的类(配置了对于过期的session的策略)没有其他注解,只是实现了一个接口:这里用递归的方式把类的所有接口中实现并且标注了@bean的方法添加...

2020-03-02 18:46:18 450

原创 SpringBoot初始化过程源码解析(三)

先把refresh流程的源码附上:public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prepareRefresh(); ...

2020-03-01 19:10:07 190

原创 SpringBoot初始化过程源码解析(二)

接着上一节的内容,对于某几个重要的点细化一下,首先是创建容器。先加载默认的字节码文件,然后进行实例化:所以最终用无参构造器,初始化了reader和scanner组件,reader是用来注册bean的,scanner是用来扫描bean的接下来prepareContext主要做了一下和监听器初始化器相关的准备:接下来来到refresh部分,这部分内容量有点大,下一节再写。。...

2020-02-29 18:50:02 201

原创 SpringBoot初始化过程源码解析(一)

springboot的初始化过程可以看做是spring的升级版,因为里面具有自动配置。首先打个断点进入debug查看一下流程:首先看一下创建实例的过程:得到监听器和初始化器,这两个比较重要:WebApplicationType:监听器和初始化器从所有类路径下的META-INF/spring.factories文件夹中寻找:然后再进入run函数看一下,这里两个重点是创建容器,是刷...

2020-02-28 17:39:19 411

原创 SpringBoot2.x前端控制器源码详解(五)拦截器执行流程

看一下拦截器的大致处理流程首先拿到所有的拦截器,这里面有一个我自己定义的拦截器。任意一个拦截器不放行,所有已经放行的拦截器都会直接执行其afterCompletion方法。...

2020-02-26 16:13:28 247 1

原创 使用MybatisPlus实现多表联查

JavaBean代码Department 类package com.refactor.demo.entities;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;import l...

2020-02-23 21:45:23 2783 1

原创 SpringBoot2.x前端控制器源码详解(四)视图解析器

最后来看一下视图解析器,如果前面mv获取过程中没有异常,就将mv进行提交:一来先国际化,然后仅继续传递

2020-02-21 18:22:52 239

原创 SpringBoot2.x前端控制器源码详解(三)controller层定义的requestmapping如何确定传入参数

这次主要看一下HandlerAdapter是怎么通过反射得到ModelAndView的,进入handle方法:最终都是通过invokeHandlerMethod得到的:似乎根据是否是异步,有不同的生成方式,本文就看一下getModelAndView的方法:层层深入之后,找到比较底层的调用,这个方法getMethodArgumentValues就是用来找参数的:关于参数解析先到这里,...

2020-02-20 18:47:29 429

原创 SpringBoot2.x前端控制器源码详解(二)handlerMappings和handlerAdapters

SpringWeb中有九个重要的组件,本文主要看一下handlerMappings和handlerAdapters。接着上文的内容:SpringBoot2.x前端控制器源码详解(一)关于handler和handlerAdapter的获取这里就采用递归方式在handlermappings中搜索,而我们标注了@requestmapping的方法都放在了requestmappinghandlerm...

2020-02-19 22:32:18 343

原创 SpringBoot2.x前端控制器源码详解(一)

Debug查看源码springboot的前端控制器沿用了springmvc中的前端控制器,源码基本一致。即使有差异,思路也是一致的,因此不进行详细比较(偷个懒)。建一个简单的控制器方便调试,然后开启debug。前端控制器处理过程直接来到DispatcherServlet的doDispatch方法。这里有4个主要的关键点。1、第一个就是获取处理器,记录了要用的controller2、然...

2020-02-19 16:09:42 582

原创 SpringBoot前端控制器

看了相关文章,有几篇不错的,mark一下。首先是原始SpringMVC中的一个大致的框架以及流程图:https://segmentfault.com/a/1190000017528294接下来是springboot中的源码分析:https://www.cnblogs.com/wyq1995/p/9953401.html还有一个科普性质的发展史:https://www.cnblogs.c...

2020-02-18 14:13:24 1726

原创 IDEA web项目 not found for the web module

初次建立web项目,虽然tomcat启动成功,但是找不到web项目。将artifacts的输出目录改成与web项目的同级目录就能正常启动了可以参考https://www.cnblogs.com/deng-cc/p/6416332.html对项目配置解释的挺详细的。欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar...

2020-01-21 22:00:17 1881 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除