- 博客(12)
- 资源 (3)
- 收藏
- 关注
原创 spring源码-messageSource和监听器的初始化
这一节我们来看一下容器启动时messageSource的初始化和监听器的初始化。这一节主要的源码分四块:initMessageSource();initApplicationEventMulticaster();onRefresh();registerListeners();其中onRefresh方法是留给用户自定义的,所以这里主要看一下其他三个方法的源码。initMessageS...
2019-08-31 11:27:41 1697
原创 spring源码-4.注册bean的后处理器
执行完beanFactory的后处理器后,在实例化beanDefinition前,我们需要将bean的后处理器注册到容器中,这样才能在实例化beanDefinition的时候去执行这些后处理器。首先我们来看一下这个方法的入口(AbstractApplicationContext):protected void registerBeanPostProcessors(ConfigurableLis...
2019-08-31 11:27:05 1298
原创 spring源码-3.beanFactory后处理器
上一节我们已经讲完了beanFactory是如何初始化,并且是如何将需要注入到容器中的bean的beanDefinition注册到beanFactory中的。这一节我们再来看一下beanFactory的后处理器是如何运行的。这里从初始化完beanFactory到beanFactory的后处理器的执行有三步:beanFactory的准备工作自定义方法对beanFactory中的后处理器在执行...
2019-08-31 11:26:06 1344
原创 从零学spring boot-springboot集成swagger
日常开发中,前后端的开发联调都需要定义一个接口文档,定义接口文档是比较耗时的,这边推荐一款插件来根据接口来自动生成接口文档,并且会根据接口的变化而自动更新,解放一部分开发人力。spring boot集成swagger非常简单,只需要以下四步:1. 引入swagger依赖<dependency> <groupId>io.springfox</groupId&...
2019-08-26 17:22:33 1256
原创 spring源码-2.3.自定义标签的解析
上一节已经详细的看了一下默认标签的解析了,这一节我们来看一下自定义标签是如何解析的。首先,来看一下自定义标签解析的入口方法,delegate.parseCustomElement(ele):public BeanDefinition parseCustomElement(Element ele, @Nullable BeanDefinition containingBd) { //根据...
2019-08-25 20:07:23 1309
原创 spring源码-2.2.默认标签的解析
上一节中,我们详细分析了spring在解析xml,创建beanFactory的前期准备工作,这一节我们将会详细分析一下spring是如何解析系统默认标签的。首先进入解析默认标签方法的入口,parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate):private void parseDefaultElement...
2019-08-25 20:06:49 1344
原创 spring源码-2.1.解析xml准备
这一节我们来看一下obtainFreshBeanFactory都做了什么,这个方法主要就是创建了BeanFactory:protected ConfigurableListableBeanFactory obtainFreshBeanFactory() { //创建BeanFactory refreshBeanFactory(); //返回BeanFactory return ge...
2019-08-25 20:06:15 1242
原创 spring源码-1.容器刷新前准备
这一节我们来看一下prepareRefresh方法都做了什么。首先看一下这个方法的源码:protected void prepareRefresh() { //记录开始时间 this.startupDate = System.currentTimeMillis(); //设置状态 this.closed.set(false); this.active.set(true); //这...
2019-08-25 20:05:39 1426
原创 spring源码-xml解析概述
我们都知道ApplicationContext就是spring的容器,下面我们来看看spring容器是如何启动的。首先我们来看一下查看的源码的一些背景:spring版本:spring5启动的xml内容:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sc...
2019-08-25 20:05:01 1358
原创 推荐几款Intellij IDEA好用的插件
以下几款插件是我在开发中常用的,非常方便 ,这里分享一下。1. Free Mybatis plugin作用:再也不需要手动去寻找dao方法中对应的sql的xml的位置了,和正常的代码跟踪一样了。2. MyBatis Log Plugin作用:将sql语句完整的打出来,再也不需要我们自己手动去填写参数了使用方法:安装完成后,在tools中打开该插件的窗口,在运行程序的时候,就会将sql...
2019-08-21 09:23:35 1382
原创 从零学springboot—— Conditional系列注解
1. @Conditional首先来看一下@Conditional注解的源码:@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Conditional { Class<? extends Conditio...
2019-08-17 16:02:58 1413
原创 从零学springboot—— 如何在junit测试中只mock一部分类
假设有一个类A,我们要对其进行测试:class A{ private B b; private C c; @Value("${str}") private String str;}如果我们想要mock调对B和C的调用,那么我们在测试类中只要这样写即可:@InjectMocksprivate A a;@Mockprivate B...
2019-08-17 16:02:05 2258 1
eclipse启动时间插件
2017-09-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人