2011-12-22 3 views
2

Я хочу загрузить файл xml в фасоль весны для дальнейшей обработки. Я знаю, что можно загрузить файл properties, просто определяя свойство bean в файле конфигурации весны. Можно ли сделать то же самое с файлом xml?Загрузить файл xml весной

редактировать Например, я хочу, чтобы иметь боб:

public class Bean { 
    private File file 
    public void setFile(File file) { 
     this.file = file 
    } 
    //.... 
} 

и в моем файле конфигурации я хочу, чтобы установить его так:

<bean id="bean" class="blabla.Bean"> 
    <property name="file" value="smth here"/> 
</bean> 

, а затем я хочу, чтобы разобрать что xml с использованием DOM

+0

возможно дубликат (http://stackoverflow.com/questions/479855/is-there-a-propertyplaceholderconfigurer-like-class-for-use-with-spring-that-acc) – CoolBeans

+0

А также см. [PropertyPlaceholderConfigurer читает из XML-файла (Конфигурация сообщества Apache)] (http://stackoverflow.com/ Вопросы/3163838/propertyplaceholderconfigurer-reads-from-xml-file-apache-commons-configuration) – CoolBeans

+0

Я не уверен, что я понимаю вопрос - вы говорите о свойствах или хотите, чтобы они находились внутри весеннего компонента, загружали XML-файл, и просто хотите определить * который * файл в вашем конфиге? –

ответ

1

Вы можете достичь этого путем изменения типа параметра в ресурс - более подробно в documentation. Вы можете получить дескриптор файла из объекта ресурса

public class Bean { 
    private File file 
    public void setFile(Resource resource) { 
     this.file = resource.getFile() 
    } 
    //.... 
} 

и в файле конфигурации вы можете установить его таким образом. Вы можете использовать classpath: если файл является частью jar в вашем пути к классам. Если он находится за пределами вам нужно будет использовать файл: [? Есть ли PropertyPlaceholderConfigurer-подобный класс для использования с весны, который принимает XML]

<bean id="bean" class="blabla.Bean"> 
    <property name="file" value="file:path to file"/> 
</bean> 
0

PropertyPlaceholderConfigurer уже поддерживает файлы свойств xml через DefaultPropertiesPersister

Формат XML-файла для свойств приведен ниже.

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 
    <properties> 
     <entry key="key1">Value 1</entry> 
     <entry key="key2">Value 2</entry> 
    </properties> 

вы можете использовать

<context:property-placeholder 
    location="classpath:/com/myProject/spring_prop.xml" /> 
     <bean id="bean" class="org.MyBean"> 
     <property name="key1" value="${key1}" /> 
     </bean> 
+0

см. Мои правки, я объясняю это немного больше – maks

0

Измените файл конфигурации на следующие,

<bean id="bean" class="blabla.Bean"> 
    <property name="file" ref="file"/> 
</bean> 

<bean id="file" class="java.io.File"> 
    <constructor-arg type="string"><value>C:\myfile.xml</value></constructor-arg> 
</bean> 
Смежные вопросы