`
JerryWang_SAP
  • 浏览: 1032582 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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:

 

 

The content of Beans.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:

 

 

 

0
1
分享到:
评论

相关推荐

    Spring 加载多个配置文件

    例如,在一个名为 `rootConfig.xml` 的主配置文件中,可以这样导入其他配置文件: ```xml &lt;beans&gt; &lt;import resource="services.xml"/&gt; &lt;import resource="resources/messageSource.xml"/&gt; ...

    Spring XML配置的12个技巧

    在Spring框架中,Bean的定义、依赖关系及其所需的其他Bean通常在配置文件中进行描述,这些配置文件通常采用XML格式。 #### 二、XML配置文件的重要性与挑战 尽管XML配置文件在Spring框架中占据着核心地位,但随着...

    spring框架配置bean的高级属性

    本文将详细解读标题“spring框架配置bean的高级属性”以及描述中的内容,并结合具体的示例XML配置文件来探讨Bean配置中的高级技巧。 #### 核心概念与应用场景 在描述中提到的`hibernate tools`是一种用于简化...

    spring配置全书(中文)

    - **配置文件结构**:Spring配置文件主要由`&lt;beans&gt;`元素构成,该元素定义了一系列的bean声明以及其他用于配置上下文环境的元素。 - **XML Schema与DTD的区别**:从Spring 2.0开始,官方更倾向于使用XML Schema而非...

    spring_aop麻雀

    在IT行业中,Spring框架是一个广泛使用的Java企业级应用开发框架,而AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分。本项目“spring_aop麻雀”显然旨在展示如何在小型项目中...

    Spring从入门到精通10

    - **定义与起源**:Spring是一个开源的轻量级Java开发框架,由Rod Johnson创建,并于2003年发布首个版本。Spring框架的核心特性是依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming...

    Spring + Hibernate + Struts 事务配置小例子(带提示框等小技巧)

    前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...

    spring.net中文手册在线版

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...

    外卖微信小程序ssm后端源码案例设计.zip

    在源码中,你可能会看到`beans.xml`配置文件,定义了各种bean及其依赖关系。 2. **SpringMVC**:是Spring的一个模块,负责处理HTTP请求和响应。它将前端控制器(DispatcherServlet)、模型-视图-控制器(MVC)模式...

    SSH整合jar包-2

    在整合SSH时,开发者需要在项目的类路径下添加这些JAR文件,然后进行相应的配置,如Struts的struts.xml、Spring的applicationContext.xml以及Hibernate的hibernate.cfg.xml等。同时,还需要在Web.xml中配置...

    springMVC实现上传

    在 `servlet-context.xml` 或者对应的配置类中,我们需要引入 `CommonsMultipartResolver` 解析器,并设置其允许的最大上传文件大小。示例如下: ```xml &lt;beans:bean id="multipartResolver" class="org.spring...

    基于ssm+Java的教学仪器设备销售网站.zip

    2. **配置文件(.xml)**:如Spring的beans.xml、MyBatis的mybatis-config.xml和mapper文件,用于定义bean和数据库配置。 3. **视图文件(.jsp或.html)**:构成用户界面,处理前端展示。 4. **数据库脚本(.sql)**...

    J2EE 开源编程精要15讲 源代码

    4. **Hibernate ORM框架**:Hibernate是一个对象关系映射(ORM)工具,允许开发者使用Java对象来操作数据库,避免了直接编写SQL语句的繁琐。它支持HQL(Hibernate Query Language),提供了强大的检索、更新和删除...

    简单的j2ee项目

    10. **Web.xml配置**:每个J2EE应用都有一个web.xml文件,它是应用的部署描述符,定义了Servlet、过滤器、监听器等组件。 11. **MVC(Model-View-Controller)模式**:在J2EE项目中,理解如何实现MVC架构对于组织...

    精通STRUTS:JAVA WEB 基于MVC的设计与开发

    3. **配置文件**:掌握struts-config.xml文件的编写,这是Struts框架的配置中心,包含了Action Mapping、Form Beans、DataSource、Result Types等重要设置。 4. **JSP与Taglibs**:学习如何使用Struts提供的定制...

    J2EE技术学习路线

    在IT行业中,Java EE(Java Platform, Enterprise Edition)是一个广泛使用的服务器端开发平台,用于构建企业级应用。本文将基于“J2EE技术学习路线”这一主题,为初学者提供一条详细的学习路径,并针对“如何迅速...

    jTester使用指南(带书签).pdf

    通常这样的例子会包括创建一个测试类,并使用 TestNG 的注解来定义测试方法。 - **示例代码**: ```java import org.testng.annotations.Test; import com.jtester.junit.Assert; public class SimpleTest { @...

    Java 高手速成方法

    ### Java高手速成方法:全面解析与实践指南 在当今高度竞争的IT行业中,Java作为一门强大而广泛应用的编程语言,对于任何希望在软件开发领域脱颖而出的人来说,掌握其精髓至关重要。本文将深入探讨《Java高手速成...

Global site tag (gtag.js) - Google Analytics