首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在XML中配置属性?

如何在XML中配置属性?
EN

Stack Overflow用户
提问于 2014-01-31 09:00:33
回答 3查看 178关注 0票数 0

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

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

配置此数据并读入Java的最佳方式是什么?如果这是正常的属性,文件加载过程由Java,或有任何新的最佳实践,使用spring或任何其他实用程序。

基本上,我想知道除了以这种XML格式配置数据,然后对其进行解析之外,是否还有其他方法?因为XML中数据是静态的,所以我的客户不想使用数据库。

代码语言:javascript
运行
复制
<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>
EN

回答 3

Stack Overflow用户

发布于 2014-01-31 14:40:22

当涉及到在spring中使用某些属性来配置软件时,例如URL、密码和唯一键,PropertyPlaceHolderConfigurer是最好的选择。

来自spring文档:

代码语言:javascript
运行
复制
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.

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

代码语言:javascript
运行
复制
##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):

代码语言:javascript
运行
复制
<!--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注释,就可以随时随地访问您的属性。

代码语言:javascript
运行
复制
@Value("${path.name}")
String pathName;

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

代码语言:javascript
运行
复制
<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
EN

Stack Overflow用户

发布于 2014-01-31 11:36:55

您可能应该从阅读一些关于Java中的XML处理的基本教程开始。我是有偏见的,但我的标准推荐仍然是IBM's DeveloperWorks XML site的材料

票数 0
EN

Stack Overflow用户

发布于 2014-01-31 14:24:56

您可以使用json配置文件和Google的Gson(https://code.google.com/p/google-gson/)来解析json文件。请参考此线程Parse a nested JSON using gson了解如何使用Gson库和示例json格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21470707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档