scala的maven项目读取配置文件

scala的maven项目读取src/main/resources目录下的资源文件该如何读取呢?

下面提供一种默认的和一种自定义的:

对于application.conf配置文件,是默认的配置文件:

application.conf内容如下:

mysql {  url : "jdbc:mysql://192.168.76.14:3306/ibigdata?useUnicode=true&characterEncoding=UTF-8",  dbtable: "record_test",  user: "root",  password:"root" }

SparkConfig.scala的读取配置文件内容的代码如下:

package com.iflytek.rwresourcefile

import com.typesafe.config.Config import com.typesafe.config.ConfigFactory

object SparkConfig extends java.io.Serializable{   val config:Config=ConfigFactory.load()   def getString(path:String):String={     return config.getString(path)   }   def getInteger(path:String):Integer={     return config.getString(path).toInt   }   def getDouble(path:String):Double={     return config.getString(path).toDouble   } }

Test.scala的测试代码如下:

package com.iflytek.rwresourcefile

import org.apache.spark.SparkConf

object Test {   def main(args: Array[String]): Unit = {     val url=SparkConfig.getString("mysql.url")     val dbtable=SparkConfig.getString("mysql.dbtable")     val user=SparkConfig.getString("mysql.user")     val password=SparkConfig.getString("mysql.password")     println("url="+url)     println("dbtable="+dbtable)     println("user="+user)     println("password="+password)   } }

截图:

对于mysql.conf这种自定义的配置文件的读取方式如下:

url=jdbc:mysql://192.168.76.14:3306/ibigdata?useUnicode=true&characterEncoding=UTF-8 dbtable=record_test user=root password=root

PropertieUtil.scala的读取自定义配置文件的代码如下:

package com.iflytek.rwresourcefile

import java.util.Properties import java.io.InputStreamReader

object PropertieUtil extends java.io.Serializable{   def getpropertie(path:String):Properties={     val properties:Properties=new Properties     val in:InputStreamReader=new InputStreamReader(PropertieUtil.getClass.getClassLoader.getResourceAsStream(path),"utf-8")     properties.load(in)     return properties   }   val propertie=getpropertie("mysql.conf")   def getStrign(path:String):String={     return propertie.getProperty(path)   } }

test111.scala的测试代码如下:

package com.iflytek.rwresourcefile

object test111 {   def main(args: Array[String]): Unit = {     val url=PropertieUtil.getStrign("url")     val dbtable=PropertieUtil.getStrign("dbtable")     val user=PropertieUtil.getStrign("user")     val password=PropertieUtil.getStrign("password")     println("url="+url)     println("dbtable="+dbtable)     println("user="+user)     println("password"+password)   } }

结果截图:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏刘晓杰

Glide生命周期管理

3528
来自专栏Android干货

浅谈TabLayout(ViewPager+Tab联动)

37211
来自专栏移动开发面面观

监听Fragment生命周期

954
来自专栏何俊林

Android支付实践(二)之微信支付详解与Demo

前言:集成支持宝和微信支付,是公司获取收益的最主要的部分,这两大巨头几乎在支付业务上不可或缺,今天看下Simon_Crystin独家授权本公众号发步的Andro...

1876
来自专栏向治洪

android多线程下载1

想做一个下载功能,当然理想的功能要支持多任务同时下载,断点续传的功能,我想一步一步来,首先困难摆在了多任务这里 开始我的思路是在一个Service中启动下载...

18810
来自专栏james大数据架构

仿优酷Android客户端图片左右滑动(自动滑动)

最终效果: ? 页面布局main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns...

1857
来自专栏猿人谷

SpringMVC中利用@InitBinder来对页面数据进行解析绑定

在使用SpingMVC框架的项目中,经常会遇到页面某些数据类型是Date、Integer、Double等的数据要绑定到控制器的实体,或者控制器需要接受这些数据...

1865
来自专栏向治洪

[置顶] 浅谈我为什么选择用Retrofit作为我的网络请求框架

比较AsyncTask、Volley、Retrofit三者的请求时间 使用 单次请求 7个请求 25个请求 AsyncTask 94...

1935
来自专栏博岩Java大讲堂

Java虚拟机--线程上下文类加载器

1554
来自专栏码洞

核心技术靠化缘是要不来的——自己动手写ORM框架

开源市场上的Java的ORM框架一个都不好用,所以花了几天时间自己撸了一个 OrmKids,欢迎大家下载学习。遇到问题请关注公众号进群大家一起讨论。

692

扫码关注云+社区