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 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

怎么解决web service circular reference 问题

下面是一个非常简单的例子: using System; using System.Data; using System.Configuration; using...

21850
来自专栏Java Web

Java 面试知识点解析(四)——版本特性篇

15450
来自专栏SpringBoot 核心技术

第三十六章:基于SpringBoot架构重写SpringMVC请求参数装载

30370
来自专栏阿杜的世界

Spring Boot:定制PropertyEditors

在Spring Boot: 定制HTTP消息转换器一文中我们学习了如何配置消息转换器用于HTTP请求和响应数据,实际上,在一次请求的完成过程中还发生了其他的转换...

8340
来自专栏圣杰的专栏

线程安全知多少

1. 如何定义线程安全 线程安全,拆开来看: 线程:指多线程的应用场景下。 安全:指数据安全。 多线程就不用过多介绍了,相关类型集中在System.Thread...

34950
来自专栏Android 研究

Retrofit解析8之核心解析——ServiceMethod及注解1

上篇文章已经介绍了Retrofit里面的大多数类,今天就重点介绍ServiceMethod,本片文章主要内容如下:

33640
来自专栏跟着阿笨一起玩NET

开源实体映射框架EmitMapper介绍

EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/。

15420
来自专栏IT技术精选文摘

跟着实例学习ZooKeeper的用法: 缓存

可以利用ZooKeeper在集群的各个节点之间缓存数据。 每个节点都可以得到最新的缓存的数据。 Curator提供了三种类型的缓存方式:Path Cache,N...

32370
来自专栏difcareer的技术笔记

JNI实现源码分析【四 函数调用】正文0x01:dvmCallMethodV0x02:nativeFunc0x03: 何时赋值

有了前面的铺垫,终于可以说说虚拟机是如何调用JNI方法的了。JNI方法,对应Java中的native方法,所以我们跟踪对Native方法的处理即可。

10940
来自专栏Java技术栈

Java 面试题经典 77 问(含答案)!

19130

扫码关注云+社区

领取腾讯云代金券