前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >避免硬编码[通俗易懂]

避免硬编码[通俗易懂]

作者头像
全栈程序员站长
发布2022-11-03 10:15:45
5890
发布2022-11-03 10:15:45
举报
文章被收录于专栏:全栈程序员必看
代码语言:javascript
复制
第一种
代码语言:javascript
复制
public interface Constants {

    /**
     * Spark Application Constants
     */
    String SEPARATOR = "   ";
    String SQLTYPE = "'通话'" ;
代码语言:javascript
复制
}
代码语言:javascript
复制
第三种
代码语言:javascript
复制
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. //a.withFallback(b) a和b合并,如果有相同的key,以a为准
  4. Config finalConfig = firstConfig.withOnlyPath(“host”).withFallback(secondConfig);

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

举例:

代码语言:javascript
复制
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.cn/180145.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档