避免硬编码[通俗易懂]

避免硬编码[通俗易懂]第一种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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用PreparedStatement执行sql语句

    使用PreparedStatement执行sql语句使用PreparedStatement执行sql语句packagecom.cn.preparedStatement;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importorg.junit.Test;importcom.cn.Util.JdbcUtil;

    2022年6月3日
    57
  • Android中跳转Activity有几种方法_java怎么跳转页面

    Android中跳转Activity有几种方法_java怎么跳转页面FLAG_ACTIVITY_NEW_TASK标记了FLAG_ACTIVITY_NEW_TASK,就一定会创建一个新的TASK吗,实验证明这是一个必要条件,还要结合taskAffinity来看,A.如果和H5Activity具有相应的亲戚存在了,那么只是会把H5Activity加入的亲缘的TASK中B.如果和H5Activity没有对应的亲缘关系的TASK,那么就会创建一个新的TASK了p

    2022年9月1日
    3
  • 将网址转换为二维码的方法

    将网址转换为二维码的方法通过草料二维码网址是https://cli.im/?fromTopNav=1输入网址后转换为二维码比如用途:可以将自己的作品先放在github上,然后再放入超级简历中个人作品上,能让HR可

    2022年7月3日
    27
  • 【Custom Mutator Fuzz】简单Protobuf使用练习

    【Custom Mutator Fuzz】简单Protobuf使用练习前面两篇文章中已经讲解了protobuf的结构以及生成代码的分析,这篇文章简单的介绍一下protobuf的使用。这里主要跟着libprotobuf-mutator_fuzzing_learning项目进行结构感知模糊测试练习

    2025年8月31日
    5
  • redis(五大数据类型)「建议收藏」

    redis(五大数据类型)「建议收藏」RedisRedis入门菜Redis为什么这么快?五大数据类型Redis可以用作数据库,缓存,消息中间件Redis入门菜redis 默认有16个数据库可以使用select 进行切换数据库root@ubuntu:/usr/bin/redisconf# redis-cli 127.0.0.1:6379> select 3 //选择第3个数据库OK127.0.0.1:6379[3]> DBSIZE //查看数据库大小(integer) 0127.0.0.1:6379[3]>

    2022年8月8日
    6
  • Android快速转战Kotlin教程「建议收藏」

    Android快速转战Kotlin教程「建议收藏」前言kotlin是啥?这里就不用多说了,想必看这篇文章的童鞋肯定是有所了解的。那么这篇文章你可以收获什么?答:本文主要通过本人如何从java转战到kotlin并应用在实际项目中的个人经历,给大家提供一些学习思路、学习方法以及一些学习资料和个人总结。前提:你的项目(包含个人项目)即将开始用到kotlin(没有项目作为依托你会缺少十足的动力,而且缺少应用场景乘热打铁那也…

    2022年5月25日
    30

发表回复

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

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