2011-02-02 4 views
1

Можно ли загружать данные из файла свойств в файл xml с использованием 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> 

вот DataSource

database.driver=*** 

database1.url=*** 
database1.username=*** 
database1.password=*** 
+0

привет, ребята, я добавил пример для вас, чтобы понять. – Ikthiander

+0

Это зависит от библиотеки, которая читает XML-файл, - если вы не хотите заменять (то есть редактировать) заполнители внутри файла и читать его потом – sfussenegger

+0

По-прежнему не знаете, что вы просите. Вы даете образец «xml», но хотите загрузить данные из файла свойств? Какова актуальность источника данных и что это такое? Пожалуйста, перефразируйте свой вопрос, чтобы тот, кто не знает о вашей проблеме, действительно может это понять. –

ответ

0

Если это весна файл свойств, это уже XML. Вы можете прочитать это со стандартными библиотеками разбора XML XML, если вы так склонны. http://www.mkyong.com/tutorials/java-xml-tutorials/ имеет несколько турориалов по различным методам.

+0

Я не уверен, почему вам нужно будет прочитать файл Spring без Spring, но это возможно. –

+0

На самом деле, я не хочу использовать какой-либо синтаксический анализ с использованием java, я просто хотел знать, есть ли способ, подобный тому, как работает Spring, если вы можете получить данные из файла свойств в xml. – Ikthiander

+2

well Spring использует Java для разбора XML :-) –

3

Вам не нужна весна для этого. Что вам нужно сделать, так это извлечь свойства, используя 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"); 

(я ушел из исключений для простоты)

и использовать API Java для XML, чтобы создать файл XML. Пример того, как приступить к созданию XML следующим образом:

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

... 

Google «ява создать XML» или подобное, чтобы узнать, как создать XML-файл в соответствии с вашими потребностями.

0

Можно ли загружать данные из файла свойств в файл xml без использования весны?

Да, но только если вы написать целую кучу Java кода:

  1. читать XML и извлечь данные, которые вам нужны.
  2. загрузить свойства
  3. объединить детали от свойств к деталям.

Я не знаю какого-либо общего решения этой проблемы, кроме Spring.


На самом деле, я не уверен, что вы можете сделать точно это с помощью Spring либо.

Проводка пружины DI имеет механизмы для замены значений свойств полного компонента (PropertyOverrideConfigurer) или заполнителей, включенных в значения свойств (PropertyPlaceholderConfigurer). Однако POC и PPC действуют на значения свойств bean, объявленных в определениях весеннего боба. То, что у вас в вашем примере, выглядит как простой XML ... не объявления Spring bean.

+0

hi stephen, не могли бы вы сообщить мне, можете ли вы поместить этот xml в конфигурацию весны и заставить его работать? – Ikthiander

+0

смотри, что это была моя оригинальная проблема, позволь мне разобраться с тобой. xml необходим для ha-jdbc, а ha-jdbc извлекает информацию из xml, теперь мне нужно поместить информацию в файл свойств, который будет вытащен в xml, а затем в приложение. имеет смысл? – Ikthiander