斯卡拉 | 属性 文件 +HashMap 或 XML |在参考 Scala 程序的性能时使用什么更好?
Scala | Property File +HashMap or XML | What is better to use in refrence to performane of Scala program?
我是 Scala 新手。我正在制作一个 TCP 服务器,它从 db 读取任意数量的注册客户端(所谓注册,我的意思是它的条目应该在我的 property/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>
Loading/Reading
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 +"]")
}
我不知道如何在阅读时检测 client1/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)' */
我是 Scala 新手。我正在制作一个 TCP 服务器,它从 db 读取任意数量的注册客户端(所谓注册,我的意思是它的条目应该在我的 property/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>
Loading/Reading
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 +"]")
}
我不知道如何在阅读时检测 client1/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)' */