避免硬编码[通俗易懂]

避免硬编码[通俗易懂]第一种publicinterfaceConstants{/***SparkApplicationConstants*/StringSEPARATOR=””;StringSQLTYPE=”‘通话'”;}第三种importjava.util.Propertiesimport…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

 

第一种
public interface Constants {

    /**
     * Spark Application Constants
     */
    String SEPARATOR = "   ";
    String SQLTYPE = "'通话'" ;
}
第三种

 

import java.util.Properties
import java.io.FileInputStream

//test.properties 里的内容为"ddd=5.6,1.2"

def loadProperties():Unit = {
  val properties = new Properties()
  val path = Thread.currentThread().getContextClassLoader.getResource("test.properties").getPath //文件要放到resource文件夹下
  properties.load(new FileInputStream(path))
  println(properties.getProperty("ddd"))//读取键为ddd的数据的值
  println(properties.getProperty("ddd","没有值"))//如果ddd不存在,则返回第二个参数
  properties.setProperty("ddd","123")//添加或修改属性值
}

第二种

Typesafe的Config库,纯Java写成、零外部依赖、代码精简、功能灵活、API友好。支持Java properties、JSON、JSON超集格式HOCON以及环境变量。ConfigFactory.load()会加载配置文件,默认加载classpath下的application.conf,application.json和application.properties文件。当然也可以调用ConfigFactory.load(confFileName)加载指定的配置文件,配置文件在resource文件夹中。

配置内容即可以是层级关系,也可以用”.”号分隔写成一行:

[java] view plain copy

  1. host{  
  2.   ip = 127.0.0.1  
  3.   port = 2282  
  4. }  

或则

 

[java] view plain copy

  1. host.ip = 127.0.0.1  
  2. host.port = 2282  

即json格式和properties格式。(貌似*.json只能是json格式,*.properties只能是properties格式,而*.conf可以是两者混合,而且配置文件只能是以上三种后缀名)

如果多个config 文件有冲突时,解决方案有:
1. a.withFallback(b) //a和b合并,如果有相同的key,以a为准 
2. a.withOnlyPath(String path) //只取a里的path下的配置
3. a.withoutPath(String path) //只取a里出path外的配置
例如:

 

[java] view plain copy

  1. Config firstConfig = ConfigFactory.load(“test1.conf”);  
  2. Config secondConfig = ConfigFactory.load(“test2.conf”);  
  3.   
  4. //a.withFallback(b)  a和b合并,如果有相同的key,以a为准  
  5. Config finalConfig = firstConfig.withOnlyPath(“host”).withFallback(secondConfig);  

finalConfig中的配置是test1.conf中的host节点的所有配置与test2.conf所有节点的配置合集。

 

 

 

举例:

 

import com.typesafe.config.ConfigFactory
//HOST="fjls"
object Test {
  def main(args: Array[String]): Unit = {
    val config = ConfigFactory.load()
    println(config.getString("HOST"))
  }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180145.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月19日 下午8:00
下一篇 2022年10月19日 下午8:16


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号