`
gaoyuntao2005
  • 浏览: 303044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

入门 08 - 不使用XML定义档

阅读更多


 XML档案的阶层格式非常适用于于组态设定,也因此几乎所有的开源项目都将XML作为预设的组态定义方式,但通常也会提供非XML定义文件的方式,像属性档案.properties,Spring也可以让您使用属性档案定义bean:

helloBean.class=onlyfun.caterpillar.HelloBean

helloBean.helloWord=Hello!Justin!


 helloBean名称即是Bean的别名,.class用于指定类别来源,其它的属性就如.helloWord即setter的名称,我们可以使用 org.springframework.beans.factory.support.PropertiesBeanDefinitionReader 来读取属性文件,一个范例如下:

SpringTest.java

package onlyfun.caterpillar;

 

import org.springframework.beans.factory.support.BeanDefinitionRegistry;

import org.springframework.beans.factory.support.DefaultListableBeanFactory;

import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.core.io.ClassPathResource;

 

public class SpringTest {

    public static void main(String[] args) {

        BeanDefinitionRegistry reg = new DefaultListableBeanFactory();

        PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg);

        reader.loadBeanDefinitions(new ClassPathResource("bean.properties"));

      

        BeanFactory factory = (BeanFactory) reg;

        HelloBean hello = (HelloBean) factory.getBean("helloBean");

        System.out.println(hello.getHelloWord());

    }

}


 除了透过XML或属性档案,您也可以在程序中直接编程,透过 org.springframework.beans.MutablePropertyValues设置属性,将属性与Bean的类别设定给 org.springframework.beans.factory.support.RootBeanDefinition,并向 org.springframework.beans.factory.support.BeanDefinitionRegistry注册,不使用任何的档案来定义的好处是,客户端与定义档是隔离的,它们无法接触定义档的内容,直接来看个例子:

SpringTest.java

package onlyfun.caterpillar;

 

import org.springframework.beans.factory.support.BeanDefinitionRegistry;

import org.springframework.beans.factory.support.DefaultListableBeanFactory;

import org.springframework.beans.factory.support.RootBeanDefinition;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.beans.MutablePropertyValues;

 

public class SpringTest {

    public static void main(String[] args) {

        // 设置属性

        MutablePropertyValues properties = new MutablePropertyValues();

        properties.addPropertyValue("helloWord", "Hello!Justin!");

      

        // 设置Bean定义

        RootBeanDefinition definition = new RootBeanDefinition(HelloBean.class, properties);

      

        // 注册Bean定义与Bean别名

        BeanDefinitionRegistry reg = new DefaultListableBeanFactory();

        reg.registerBeanDefinition("helloBean", definition);

      

        BeanFactory factory = (BeanFactory) reg;      

        HelloBean hello = (HelloBean) factory.getBean("helloBean");

        System.out.println(hello.getHelloWord());

    }

}


 只要有spring-core.jar、commons-logging.jar与上面这个程序就可以运作了,不需要任何其它的档案。

分享到:
评论

相关推荐

    xml入门经典-part3(中文版)

    目 录 译者序 作者简介 前言 第1章 XML简介 1.1 标记语言 1.2 XML的起源和目的 1.3 Web体系结构:过去与未来 1.3.1 传统Web体系结构 1.3.2 XML下的Web体系结构 ...9.5 使用DOM进行XML文档的转换

    spring-boot-camel-xml:一个快速入门,展示了如何将Spring Boot和camel与XML DSL以及Kubernetes或OpenShift一起使用

    该应用程序利用Spring 批注通过类路径上的src / main / resources / spring / camel-context.xml文件加载Camel Context定义。 重要的 该快速入门可以在2种模式下运行:在您的计算机和Kubernetes / OpenShift群集上...

    xml入门教程/xml入门教程

    4) XML没有定义任何标记,它提供了一种工具定义标记以及它们之间的结构关系; 5) XML是一种用于结构化文本交换的标记语言; 6) XML代表了内容的结构也代表了内容本身; 7) XML继承自SGML(标准通用标记语言)。SGML的...

    XML入门简介,简单介绍XML

    XML入门简介,XML是EXtensible Markup Language的缩写 XML是一种类似于HTML的标记语言 XML是用来描述数据的 XML的标记不是在XML中预定义的,你必须定义自己的标记 XML使用文档类型定义(DTD)或者模式(Schema)...

    [XML入门经典(第4版)].(Beginning.XML.4th.Edition).(美)亨特,(美)拉夫特,(美)福思特.扫描版.pdf

    中文名: XML入门经典(第四版) 原名: Beginning XML 4th Edition 作者: (美)亨特 (美)拉夫特 (美)福思特 译者: 吴文国 资源格式: PDF 版本: 扫描版 出版社: (美)亨特 (美)拉夫特 (美)福思特 书号: 9787302194651 发行...

    XML编程从入门到精通

    XML编程从入门到精通 XML DOM 教程 • DOM 首页 • DOM 简介 • DOM 节点 • DOM 节点树 • DOM 解析 • DOM 加载 • DOM 属性和方法 • DOM 访问节点 • DOM 节点信息 • DOM 节点列表 • DOM 遍历节点 • DOM ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    单独用XMl不能显示页面,我们使用格式化技术,比如CSS或者XSL,才能显示XML标记创建的文档。 我们在前面第一章讲到XML是将数据和格式分离的。XML文档本身不知道如何来显示,必须有辅助文件来帮助实现。(XML取消了...

    C#XML入门经典 C#编程人员必备的XML技能.part2

    C# XML入门经典——C#编程人员必备的XML技能 作者:[美]Stewart Fraser, Steven 著,毛尧飞,崔伟 译 出版社:清华大学出版社 出版时间:2003年11月 第1章 在C#中使用XML的原因 <br>1.1 使用XML的原因...

    XML入门与实例

    · 第一章:XML快速入门 · 一. 什么是XML? · 二. XML是新概念吗? · 三. 使用XML有什么好处? · 四. XML很难学吗? · 五. XML和HTML的区别 · 六. XML的严格格式 · 七. 关于XML的更多...

    很经典的XML入门教程

    XML 入门教程(初学者用) Power By Xinhai Work Studio 第一章:在学习XML 之前你应该掌握什么 第二章:怎么使用XML 第三章:XML 的语法 第四章:文档类型定义 DTD(Document Type Definition) 第五章:在NetScape ...

    Maven入门--概念与实例

    本文虽然是Maven2的入门文章,但并不涉 及 Maven的历史、下载与安装,这些内容可以到Maven的官方网站上了解。本文主要是关注Maven中的重要概念,并以一个实例来阐述使用Maven的 基本方法。文末有例子代码下载的链接...

    XML初学入门教程(pdf)

    第一章:在学习XML之前你应该掌握什么 2 第二章:怎么使用XML 3 第三章:XML的语法 4 第四章:文档类型定义 DTD(Document Type Definition) 6 第五章:在NetScape和IE中的XML 8 第六章:微软的XML...

    XML入门精解之文件格式定义.doc

    dtd实际上可以看作一个或多个xml文件的模板,这些xml文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合dtd中的定义。xml文件中的元素,即我们所创建的标记,是根据我们应用的实际...

    XML-DTD实例讲解

    XML入门精解之DTD 文件格式定义(XML DTD)  DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。XML文件中的元素,...

    XML入门经典教程

    什么是 XML? • XML 指可扩展标记语言(EXtensible Markup Language) • XML 是一种标记语言,很类似 HTML • XML 的设计宗旨是传输数据,而非显示数据 • XML 标签没有被预定义。您需要自行定义标签。 • XML ...

    XML轻松学习手册 / XML技术 /

    · 第一章:XML快速入门 · 一. 什么是XML? · 二. XML是新概念吗? · 三. 使用XML有什么好处? · 四. XML很难学吗? · 五. XML和HTML的区别 · 六. XML的严格格式 · 七. 关于XML的更多 · 第二章:XML概念 ...

    XML文档对象模型入门

    文档对象模型就是这样一个结构化文档编程接口,它定义了文档的逻辑结构以及访问和操纵文档的方法。使用 DOM 模型,程序员可以方便地创建文档、导航其结构,或增加、修改、删除、移动文档的任何成份。DOM 标准的出现...

    XML入门材料.pdf

    用朴素的语言辅以大量真实可信的实例,来帮助消化理解XML在C#编程中的方方面面:XML 的定义与构造;XML 的验证(DTD、XML Schema、RELAX NG 和Schematron);XML的处理(XPATH 和XSLT);与数据库的结合(XQuery);在通信...

    电子书-《XML实用教程》高清晰PDF Part1(共2Parts)

    本书是学习和应用XML 语言的实用教材,书中阐述了XML 的基本概念、语法规则、文档类型定义(DTD)、Schema 结构、层叠样式单(CSS)、数据源对象(DSO)、文件转换(XSLT)、文档对象模型(DOM),还介绍了在Java、ASP 和.NET ...

    Tinyxml 源代码(VC6 & VS2005)

    TinyXML不解析不使用DTDs(文档类型定义)或者XSLs(可扩展样式表语言)。有其它解析器(到www.sourceforge.org搜索一下XML)具有更加全面的特性,但它们也就更大,需要花更长的时间来建立你的项目,有更陡的学习...

Global site tag (gtag.js) - Google Analytics