java/spring源码之DI - 源码预读

阅读全文

spring源码之IOC - 注解 - 扫描指定的包

    AnnotationConfigApplicationContext另一种方式,可以直接传入所需扫描的包。该容器会将扫描该包及其子包下所有类,并通过默认的过滤器将配置了@Component、@Service等注解的类转换成BeanDefinition,并注册。

阅读全文

spring源码之IOC - 注解 - 注册指定bean定义

    上一章总结到,AnnotationConfigApplicationContext提供两种方式注册bean,一是注册指定的bean,二是扫描指定的包。本章主要描述前者的过程。

注册指定的bean

    AnnotatedBeanDefinitionReader.register()向容器注册指定bean。该方法完成整个过程的调用,其总结步骤如下

阅读全文

spring源码之IOC - 注解 - 容器初始化

    为了简化bean的配置,spring提供了注解方式,用来取代xml配置文件。在spring中管理注解的bean定义容器有两个:AnnotationConfigApplicationContext、AnnotationConfigWebApplicationContext,两者的用法以及对注解的处理几乎没有区别。这里以AnnotationConfigApplicationContext为例。

阅读全文

spring源码之IOC - xml - 注册BeanDefinition

    在上面几章,描述了整个xml解析成BeanDefinition的过程。还剩余最后一个步骤就是向IOC中注册BeanDefinition。回到DefaultBeanDefinitionDocumentReader中,通过BeanDefinitionParserDelegate.parseBeanDefinitionElement()获得BeanDefinitionHolder,再会通过BeanDefinitionReaderUtils.registerBeanDefinition()将其注册。

阅读全文

swagger增加接口版本管理

    怎么使用swagger,这里就不说了,本站已经跟各大搜索引擎达成合作,只要你在各大搜索引擎中输入关键词springboot swagger,就会在第一页返回给你集成教程。

背景

    swagger确实很不错,可以自动生成接口文档,省去另外写文档的工作量,但是毕竟自动生成,肯定有不适合我们自己需求的地方。比如所有的接口文档没有分类,放在一起,前端很难找到所需的接口。还有接口文档有更新,没有任何地方提现处理。需要口头通知前端修改,如果前端忘了,后续还会怪后端没有通知到,以及发生各种扯皮。

阅读全文

spring源码之IOC - xml - 加载bean定义 3 解析bean标签

    上一章,在解析bean标签的时候,还剩余两个方法没有深入

  1. parseBeanDefinitionElement()
  2. registerBeanDefinition()

阅读全文

spring源码之IOC - xml - 加载bean定义 2 解析import、alias标签

    这一章开始真正解析xml的标签,逻辑不复杂,但是内容比较多,所有单独放一篇文章。继续上一章的BeanDefinitionDocumentReader.registerBeanDefinitions(),该接口只有一个实现类就是:DefaultBeanDefinitionDocumentReader。以下面xml为例

阅读全文

spring源码之IOC - xml - 加载bean定义 1 加载资源文件

    上一章讲到refreshBeanFactory做了两件事情,一件是创建容器,一件是加载BeanDefinition,即loadBeanDefinitions()。加载BeanDefinition包含两个过程。本章讲第一点。

  1. 加载bean配置文件

阅读全文

spring源码之IOC - xml - 创建容器

    IOC初始化可归纳为两个步骤,创建容器、加载bean定义。本文以ApplicationContext为例讲解创建容器过程,其实现类为ClassPathXmlApplicationContext。

    ApplicationContext允许嵌套上下文,可以将父上下文维护在一个上下文中,其原理很类似双亲委托加载。对于使用的话,加载一个bean,会先检查当前上下文,然后检索父上下文,逐级向上。这样为spring应用提供一个共享的bean环境,而不用在多个上下文之间来回切换。

阅读全文