一个快速找到Spring框架是在哪里找到XML配置文件并解析Beans定义的小技巧_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 一个快速找到Spring框架是在哪里找到XML配置文件并解析Beans定义的小技巧

一个快速找到Spring框架是在哪里找到XML配置文件并解析Beans定义的小技巧

 2020/10/14 16:06:17  JerryWang_SAP  程序员俱乐部  我要评论(0)
  • 摘要:WecandefinebeanconfigurationinxmlandthencangetinstantiatedbeaninstancewithhelpofallkindsofcontainersforexampleClassPathXmlApplicationContextasdisplayedbelow:ThecontentofBeans.xml:<?xmlversion="1.0"encoding="UTF-8"?><!--http://stackoverflow
  • 标签:配置文件 文件 配置 一个 Spring 技巧 XML 解析

We can define bean configuration in xml and then can get instantiated bean instance with help of all kinds of containers for example ClassPathXmlApplicationContext as displayed below:

class="ztext-empty-paragraph">?

?

The content of Beans.xml:

monospace; font-size: inherit; background-color: inherit;" class="language-xml"><?xml version="1.0" encoding="UTF-8"?>
<!--  http://stackoverflow.com/questions/18802982/no-declaration-can-be-found-for-element-contextannotation-config
 -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">   
   <bean id="helloWorld" class="main.java.com.sap.HelloWorld">
       <property name="message" value="sss"/>
       <property name="testMin" value="2"/>
       <property name="phone" value="1"/>
   </bean>
</beans>

Where can we set breakpoint to start? No hint. Here is a tip: we can make the Beans.xml invalid by deliberately changing te tag bean to beana, and relaunch application. Now exception is raised as expected: Click the hyperlink XmlBeanDefinitionReader.java:399,

?

?

The line 399 where exception is raised will be automatically located. The core logic to load xml file is just near the exception raise position: line 391. So we can set breakpoint in line 391 now:

?

?

Change the tag from beana back to bean, and start application via debug mode. The code below is the core logic of Bean configuration file parse in Spring framework. The logic consists of two main steps:

  1. parse XML as a dom structure in memory ( line 391 )
  2. extract bean information contained in dom structure and generate BeanDefinition structure ( line 392 )

?

?

from screenshot below we can find out the xml is parsed via SAX parser:

?

?

My “helloWorld” bean is parsed here:

?

?

?

发表评论
用户名: 匿名