Scala |属性文件+哈希映射或XML|在引用Scala程序的性能时,使用什么更好



我是Scala的新手。我正在制作一个TCP服务器,它从数据库中读取任何数量的注册客户端(我所说的注册是指它的条目应该在我的属性/XML文件中(。所以,我对使用XML配置文件还是使用属性文件+HashMap感到困惑。这是一个示例代码。

XML

<client-config>
        <clients>
                <client1 serviceId="1233" URL="jdbc:oracle:thin:@10.168.2.127:1521:mastera" username="sdp" password="sdp"/>
                <client2 serviceId="1234" URL="jdbc:oracle:thin:@10.168.2.127:1521:mastera" username="sdp" password="sdp"/>
        </clients>
</client-config>

加载/读取

val clientConfigXML = XML.loadFile("src/client_Config.xml")
if(clientConfigXML.toString.contains(serviceId)){
    val current_client = "client1"
    val dbURL = clientConfigXML \"clients"  current_client  "@URL"
    val password = clientConfigXML \"clients"  current_client  "@password"
    val username = clientConfigXML \"clients"  current_client  "@username"
    val serviceId = clientConfigXML \"clients"  current_client  "@serviceId"
    println("dbURL ["+dbURL+"] password ["+password+"] username ["+username+"] serviceId ["+serviceId +"]")
  }

我不知道如何在阅读时检测客户端1/2/3…n。

您使用标签函数

示例

val xml = 
scala.xml.Utility.trim(<client-config>
  <clients>
    <client1 serviceId="1233" URL="jdbc:oracle:thin:@10.168.2.127:1521:mastera" username="sdp" password="sdp"/>
    <client2 serviceId="1234" URL="jdbc:oracle:thin:@10.168.2.127:1521:mastera" username="sdp" password="sdp"/>
  </clients>
</client-config>)
val clientNames = ( xml \ "clients").head.child.map(_.label)
/* clientNames is  'ArrayBuffer(client1, client2)' */

最新更新