bean的分析跟读取
xml形式的bean的分析跟读取
szhlcy
这个作者很懒,什么都没留下…
展开
-
1.1Spring源码解析——核心类介绍
1.DefaultListableBeanFactoryXmlBeanFactory继承自DefaultListableBeanFactory,而DefaultListableBeanFactory是整个bean加载的核心部分,是Spring注册及加载bean的默认实现,而对于XmlBeanFactory与DefaultListableBeanFactory不同的地方就是XmlB...原创 2018-07-28 11:18:20 · 139 阅读 · 0 评论 -
3.1Spring源码解析——自定义标签的使用
当需要为系统提供可配置化支持的时候。一般的做法会使用原生态的方式去解析定义好的XML文件,然后转化为配置对象。但是这种方法比较繁琐。Spring提供了可扩展的Schema的支持,这是一个不错的这种方案。自定义扩展的标签主要有一下几步:1.创建一个需要扩展的组件2.定义一个XSD文件描述组件内容3.创建一个文件,实现BeanDefinitionParser接口,用来解析XS...原创 2018-10-16 15:33:52 · 126 阅读 · 0 评论 -
2.1.2Spring源码解析——alias标签的解析
在对bean进行定义的时候,除了使用id属性来指定名称之外,为了提供多个名称,可以使用alias标签来指定。 在定义bean的时候就指定所有的别名并不总是恰当的。有时候我们可能在当前位置为别处定义的bean引入别名。在XML配置文件中,可以单独使用<alias/>元素来完成bean别名的定义。比如<bean id="testBean" class="com....原创 2018-08-04 11:26:46 · 189 阅读 · 0 评论 -
2.1.3.2Spring源码解析——AbstractBeanDefinition属性
AbstractBeanDefinition.java private volatile Object beanClass; //bean的作用范围,对应bean属性的scope //public static final String SCOPE_DEFAULT = ""; private String scope = SCOPE_DEFAULT;...原创 2018-09-13 18:24:21 · 182 阅读 · 0 评论 -
2.1.1Spring源码解析——import标签的解析
直接看代码protected void importBeanDefinitionResource(Element ele) { //获取Resource属性 String location = ele.getAttribute(RESOURCE_ATTRIBUTE); //如果不存在Resource属性则不做任何处理 ...原创 2018-08-04 11:17:23 · 93 阅读 · 0 评论 -
2.1.Spring源码解析——四种不同的标签
在parseDefaultElement分别解析了4种不同的标签(import,alias,bean和beans)做了不同的处理private void parseDefaultElement (Element. ele, BeanDefinitionParserDelegate delegate) {//todo.对import标签的处理if (delegate. node...原创 2018-08-04 11:07:24 · 97 阅读 · 0 评论 -
1.4.Spring源码解析——获取Document
经过验证模式准备的步骤就可以进行Document加载了,同样XmlBeanFactoryReader类对于文档读取并没有亲历亲为,而是委托给了DocumentLoader去执行,这里的DocumentLoader是个接口正真调用的时DefaultDocumentLoader。 public Document loadDocument(InputSource inputSo...原创 2018-07-28 11:32:08 · 100 阅读 · 0 评论 -
1.3 Spring源码解析——获取XML的验证模式
XML文件的验证模式保证了XML文件的正确性,而比较常用的验证模式有两种:DTD和XSD两种。 使用DTD验证模式需要在XML文件的头部声明。 使用XSD除了要声明名称空间外,必须指定该名称空间所对应的XML Schema文件的存储位置。getValidationModeForResource()方法,如下protected int getValidationModeFo...原创 2018-07-28 11:19:26 · 121 阅读 · 0 评论 -
1.2.Spring源码解析——容器的基础XmlBeanFactory
1.通过以下代码分析BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("Test.xml"));通过XmlBeanFactory初始化时序图,看看上面代码的执行逻辑容器的基础.png 在测试的BeanFactoryTest中首先调用ClassPathResource的构造函数...原创 2018-07-28 11:18:27 · 102 阅读 · 0 评论 -
1.5.Spring源码解析——解析及注册BeanDefinitions
把文件转换为Document后,接下来的提取及注册bean就是我们的重头戏。XmlBeanDefinitionReader.java @SuppressWarnings("deprecation")public int registerBeanDefinitions (Document doc, Resource resource) throws BeanDefinit...原创 2018-08-04 11:05:18 · 106 阅读 · 0 评论