如何在XML中配置属性?

时间:2014-01-31 01:00:33

标签: java spring

我正在计划Maven开发一个实际上需要读取下面的配置数据的模块,其中标记<path>将以不同的路径名重复多次,并且可以是相同的<pathtype>和不同的URL和参数,然后尝试访问Java类中的URL和路径。

在Java中,我应该能够读取给定类型的所有<pathurl>标签及其参数。然后我将逐一用Java处理它们。

配置此数据并使用Java读取的最佳方法是什么?它应该是Java的普通属性文件加载过程,还是使用spring或任何其他实用程序的任何新的最佳实践。

基本上我想知道有没有什么方法可以配置除这种XML格式之外的数据然后解析它?由于该XML中的数据是静态的,因此我的客户端不想使用数据库。

<path>
  <pathname>mypath</pathname>
  <pathtype>httpfile</pathtype>
  <pathurl>http://acdsds:8380/gis/</pathurl>
  <params>
    <user>sad</user>
    <password>spwd</password>
    <httprescd>100</httprescd>
    <mexist>DROD_MEF.gif</mexist>
  </params>
</path>

3 个答案:

答案 0 :(得分:1)

在使用某些属性(如URL)配置软件时,春季PropertyPlaceHolderConfigurer中的密码和唯一键是您最好的选择。

从春季文件:

You use the PropertyPlaceholderConfigurer to externalize property values from a bean definition in a separate file using the standard Java Properties format. Doing so enables the person deploying an application to customize environment-specific properties such as database URLs and passwords, without the complexity or risk of modifying the main XML definition file or files for the container.

您要做的是,将所有配置数据放在属性文件中:

##JDBC related properties start here##
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.databaseURL=jdbc:mysql://localhost:3306/databaseName
jdbc.userName=root
jdbc.password=root  
##JDBC related properties end here##
## path Configuration start here##
path.name=mypath
path.type=httpfile
path.url=http://acdsds:8380/gis/
## path Configuration ends here##

然后,配置spring以访问外部属性文件(假设您的属性文件名为settings.properties):

<!--settings for accessing external property files--> 
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>                  
                <value>/yourPathToPropertiesFile/settings.properties</value>                   
            </list>
        </property>
    </bean>  

配置PropertyPlaceholderConfigurer后,只需使用@value注释,即可随时随地访问您的属性。

@Value("${path.name}")
String pathName;

您甚至可以使用属性文件来配置数据源和许多其他内容:

<bean id="dataSource" destroy-method="close"
        class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.databaseURL}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

答案 1 :(得分:0)

您应该首先阅读一些关于Java中XML处理的基础教程。我有偏见,但我的标准建议仍然是IBM's DeveloperWorks XML site

的材料

答案 2 :(得分:0)

您可以使用json配置文件和Google的Gson(https://code.google.com/p/google-gson/)来解析json文件。关于如何使用Gson库&amp ;;请参阅此主题Parse a nested JSON using gson。样本json格式。