一. xml中bean解析过程

扫描META-INF下面的

spring.schemas  bean定义对应的xsd位置,在IDEA中可以辅助校验)

spring.handlers   xmlns对应的bean具体解析器, 一般会继承NamespaceHandlerSupport,

NSHandler下面是具体解析过程, 最终返回的结果是spring中的BeanDefinition

参见<dubbo:config> <hsf:provider> <mvc:annotation-driven>的解析过程

二. 注解形式的自定义bean

BeanDefinitionRegistryPostProcessor

mybatis中的bean注解扫描过程, ===> mapper接口为何可以使用Autowire自动注入

扫描包下的所有类都会创建成对应的MapperFactoryBean对象,同时继承了FactoryBean, 在spring容器getBean时调用FactoryBean的getObject方法,生成mapper的proxy对象

@Import(MapperScannerRegistrar.class)
public @interface MapperScan

如果使用了MapperScan,就会使用MapperScannerRegistrar.class扫描mapperScan定义的包名, 在里面创建mapper对应的MapperFactoryBean

@Import({ AutoConfiguredMapperScannerRegistrar.class })
@ConditionalOnMissingBean(MapperFactoryBean.class)
public static class MapperScannerRegistrarNotFoundConfiguration

如果没有使用MapperScan, 使用的是org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.MapperScannerRegistrarNotFoundConfiguration上面import引入的AutoConfiguredMapperScannerRegistrar来扫描基础包名
注意这个注解@ConditionalOnMissingBean

resources下面的mapper.xml是什么时候加载进去的?
MybatisAutoConfiguration里面sessionFactory初始化时 factory.setMapperLocations(this.properties.resolveMapperLocations());

自定义xml spring bean的更多相关文章

  1. 0003 - 基于xml的Spring Bean 的创建过程

    一.目录 前言 创建 Bean 容器 加载 Bean 定义 创建 Bean Spring Bean 创建过程中的设计模式 总结 二.前言 2.1 Spring 使用配置 ApplicationCont ...

  2. 6.2 dubbo在spring中自定义xml标签源码解析

    在6.1 如何在spring中自定义xml标签中我们看到了在spring中自定义xml标签的方式.dubbo也是这样来实现的. 一 META_INF/dubbo.xsd 比较长,只列出<dubb ...

  3. 6.1 如何在spring中自定义xml标签

    dubbo自定义了很多xml标签,例如<dubbo:application>,那么这些自定义标签是怎么与spring结合起来的呢?我们先看一个简单的例子. 一 编写模型类 package ...

  4. spring 通过beanDefinition注册自定义规则的bean

    目的: 扫描某个自定义注解标注的类, 或者自定义xml 为这些类生成spring Bean 基本原理:org.springframework.beans.factory.support.Default ...

  5. spring bean的介绍以及xml和注解的配置方法

    5.Bean 下边我们来了解一下Bean的: Bean的作用域Bean的生命周期Bean的自动装配Resources和ResourceLoader 5.1Bean容器的初始化 Bean容器的初始化 两 ...

  6. Spring源码阅读笔记05:自定义xml标签解析

    在上篇文章中,提到了在Spring中存在默认标签与自定义标签两种,并且详细分析了默认标签的解析,本文就来分析自定义标签的解析,像Spring中的AOP就是通过自定义标签来进行配置的,这里也是为后面学习 ...

  7. Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配

    一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...

  8. spring学习总结——装配Bean学习三(xml装配bean)

    通过XML装配bean Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了.不过,鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中使用 ...

  9. Spring中applicationContext.xml的bean里的id和name属性区别

    转自:http://www.cnblogs.com/ztf2008/archive/2009/02/11/1388003.html <beans><bean id="per ...

随机推荐

  1. bzoj 4103: 异或运算 可持久化Trie

    题目大意: 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值\(A_{ij} = x_i \text{ xor } y_j ...

  2. plsql developer v12.1的使用

    1.下载oracle客户端: 配置安装路径到PATH,我的是首先定义了一个环境变量ORACLE_CLIENT_PATH(这个路径其实就是官网下来的zip包解压缩后的路径),然后将这个变量附加到PATH ...

  3. BZOJ2548:[CTSC2002]灭鼠行动

    我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  4. DevExpress源码编译总结

    独家提供完整可编译sln文件,本篇文章内容包括基础知识(GAC.程序集强签名.友元程序集).编译过程.注册GAC.添加工具箱.多语言支持.运行时和设计时调试 源码地址  链接:http://pan.b ...

  5. 【转】 Pro Android学习笔记(五九):Preferences(3):EditText和Ringtone Preference

    目录(?)[-] EditText Preferences xml文件 设备的存贮文件 Ringtone Preferences EditText Preferences xml文件 在res/xml ...

  6. 解决启动SQL Server Management Studio 17时报Cannot find one of more components...的问题

    刚装好SSMS 17.1准备体验,弹出: 一番搜索,普遍办法都是安装VS2015独立shell.删除某个注册表项什么的,没用,首先这个shell我是装了的,然后也没有那个注册表项.我自己尝试过重装sh ...

  7. 3DES加密/解密

    /// <summary> /// C#/PHP/JSP 3DES 加密与解密(只支持UTF-8编码) /// </summary> public class Crypto3D ...

  8. Java探索之旅(17)——多线程(1)

    1.多线程  1.1线程 线程是程序运行的基本执行单元.指的是一段相对独立的代码,执行指定的计算或操作.多操作系统执行一个程序时会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被 ...

  9. [poj1088]滑雪(二维最长下降子序列)

    解题关键:记忆化搜索 #include<cstdio> #include<cstring> #include<algorithm> #include<cstd ...

  10. URL中#符号的作用

    转自http://blog.sina.com.cn/s/blog_6f9eb2dd0100sk97.html 一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如,       ...