从属性文件加载xml

时间:2011-02-02 14:35:41

标签: java xml spring properties

是否可以使用spring将数据从属性文件加载到xml文件?如果有,任何人都可以给出一个例子吗?

这是xml:

<cluster balancer="load" 
       dialect="net.sf.hajdbc.dialect.MySQLDialect" 
       default-sync="full" 
       transaction-mode="parallel" 
       auto-activate-schedule="0 * * ? * *" 
       failure-detect-schedule="0 * * ? * *"
       meta-data-cache="none">
<database id="database1">
  <driver>***</driver>
  <url>***</url>
  <user>***</user>
  <password>***</password>
</database>

这是数据源

database.driver=***

database1.url=***
database1.username=***
database1.password=***

3 个答案:

答案 0 :(得分:3)

你不需要Spring。您需要做的是使用getProperty()提取属性。一个例子如下:

    File propertiesFile = ...
    Properties properties = new Properties();
    FileInputStream  fis = new FileInputStream(propertiesFile);
    properties.load(fis);

    String databaseDriver = properties.getProperty("database.driver");
    String database1Url = properties.getProperty("database1.url");
    String database1Username = properties.getProperty("database1.username");

(为了简单起见,我省略了例外情况)

并使用Java API for XML创建XML文件。如何开始创建XML的示例如下:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = factory.newDocumentBuilder();
Document document = documentBuilder.newDocument();
Element rootElement = document.createElement("database");
document.appendChild(rootElement);

...

google“java create xml”或类似内容,了解如何根据需要创建xml。

答案 1 :(得分:0)

如果它是Spring属性文件,则它已经是XML。如果您愿意,可以使用标准的Java XML解析库来阅读它。 http://www.mkyong.com/tutorials/java-xml-tutorials/有各种各样的方法可以做到这一点。

答案 2 :(得分:0)

  

是否可以在不使用spring?

的情况下将属性文件中的数据加载到xml文件中

是的,但前提是你要编写一大堆Java代码:

  1. 阅读XML并提取您需要的详细信息。
  2. 加载属性
  3. 将属性中的详细信息合并到详细信息中。
  4. 除了Spring之外,我不知道这个问题的任何通用解决方案。


    实际上,我不确定你是否可以使用Spring 完全这个。

    Spring DI布线具有替换完整bean属性值(PropertyOverrideConfigurer)或嵌入在属性值(PropertyPlaceholderConfigurer)中的占位符的机制。但是,POC和PPC对Spring bean定义中声明的bean属性值进行操作。您的示例中的内容看起来像纯XML ...而不是Spring bean声明。