• Spring学习系列(一)被忽视的XSD文件


    Spring是个JavaBean容器,相信大部分人在学习Spring时,首先接触的就是如何在XML文件中配置JavaBean。
    想要深入了解Spring配置文件的定义,搞清楚如何定义一个Bean,需要研究一下spring-beans.xsd。

    1.XML相关知识准备

    • XML的约束模式有两种:DTD/Schema。
    • DTD的作用是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构。
    • Schema是对XML文档结构的定义和描述,其主要的作用是用来约束XML文件,并验证XML文件有效性。
    • Spring1.0采用dtd定义XML,Spring2.0以后改用Schema定义XML。(如果遇到仍然采用dtd定义的xml文件大概是个老古董了)

    2.spring-beans.xsd中对bean的解释。

    文件地址:http://www.springframework.org/schema/beans/spring-beans.xsd
    本地路径:spring-beans-4.3.5.RELEASE.jar!orgspringframeworkeansfactoryxmlspring-beans-4.3.xsd

    以下内容摘自spring-beans.xsd


    Spring XML Beans Schema, version 4.3

    Authors:Juergen Hoeller, Rob Harrop, Mark Fisher, Chris Beams(四位都是spring核心人员)



    定义一种简单一致的创建JavaBeans对象命名空间的方式。(<beans></beans>)

    通过XmlBeanDefinitionReader(和DefaultBeanDefinitionDocumentReader)读取,由Spring BeanFactory管理。

    这种文档类型被基于bean工厂的大部分Spring功能使用,包括web应用上下文。

    这个文档中的每一个"bean"定义一个JavaBean。
    通常这些bean实例由JavaBean的属性和(或)构造器参数明确定义。

    一个bean实例可以是"单例模式"的共享实例或者是"原型模式"的独享实例。更多的范围(scopes)由扩展的bean工厂提供,例如在web环境中。

    支持beans之间的引用,意味着设置JavaBean的属性或者构造参数时,可以引用同一个工厂(或祖先级工厂)的其他bean。

    内部bean定义可以作为一种可选的bean引用,这种内部beans没有独立的生命周期,通常匿名嵌套对象共享其容器bean的作用范围。

    支持lists,sets,maps,java.util.Properites作为bean属性或者构造参数的数据类型。


    以下列举一些主要的标签
    <beans>是根节点,它的一些属性例如:

    • profile

    在嵌套的<beans>中指定不同的环境的配置参数,

    可以在上下文context-param中设置profile.default,profile.active切换不同环境的配置,或使用@Profile,@ActiveProfiles指定配置

    • default-lazy-init

    此参数表示延时加载,即在项目启动时不会实例化注解的bean,除非启动项目时需要用到,未实例化的注解对象在程序实际访问调用时才注入调用

    • default-merge

    在继承关系时在子类中合并父类的值

    • default-autowire

    是否自动注入,如果未设置需要显示的声明ref引入

    • default-autowire-candidates

    自动注入bean的候选者

    • default-init-method,初始化方法
    • default-destroy-method,销毁方法

    <bean>子节点的一些属性例如:

    • id,属性是bean唯一的身份标识。在同一个<beans>下最多只能出现一次
    • name
    • class
    • .....

    3.思考总结

      由于刚学习Spring,以上举例列出的<beans>的标签和使用,都是在网络中找的解释,认识不够深刻。看来只参照XSD是不够的,想要深入理解还是要参考官方文档。

    作为深入学习Spring的第一节课,也为深入学习Spring提供了思路:面向《官方文档》学习

  • 相关阅读:
    UVA 10820
    Theano 在windows下安装
    [置顶] 扩展方法入门
    Hdu 3887 Counting Offspring Poj 3321 Apple Tree BZOJ 1103 [POI2007]大都市meg
    win7在USB该解决方案不健全音箱
    java堆 (转)
    王立平--android这四个组成部分
    malloc功能具体解释
    楼塔当天领袖acm心理(作为励志使用)
    Lua学习 2) —— Android与Lua互调
  • 原文地址:https://www.cnblogs.com/masting/p/11198530.html
Copyright © 2020-2023  润新知