Java最佳实践建议将属性作为常量读取.那么,您认为达到目标的最佳方法是什么?我的方法是:一个Configuration类只读取一次属性文件(单例模式),并使用此类在需要时读取属性作为常量.并存储一个Constants类:

>属性名称可在属性文件中找到它们(例如app.database.url).

>静态常量(我不希望用户配置的静态常量,例如

CONSTANT_URL = “myurl.com”).

public final class Configurations {

private Properties properties = null;

private static Configurations instance = null;

/** Private constructor */

private Configurations (){

this.properties = new Properties();

try{

properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(Constants.PATH_CONFFILE));

}catch(Exception ex){

ex.printStackTrace();

}

}

/** Creates the instance is synchronized to avoid multithreads problems */

private synchronized static void createInstance () {

if (instance == null) {

instance = new Configurations ();

}

}

/** Get the properties instance. Uses singleton pattern */

public static Configurations getInstance(){

// Uses singleton pattern to guarantee the creation of only one instance

if(instance == null) {

createInstance();

}

return instance;

}

/** Get a property of the property file */

public String getProperty(String key){

String result = null;

if(key !=null && !key.trim().isEmpty()){

result = this.properties.getProperty(key);

}

return result;

}

/** Override the clone method to ensure the "unique instance" requeriment of this class */

public Object clone() throws CloneNotSupportedException {

throw new CloneNotSupportedException();

}}

Constant类包含对属性和常量的引用.

public class Constants {

// Properties (user configurable)

public static final String DB_URL = "db.url";

public static final String DB_DRIVER = "db.driver";

// Constants (not user configurable)

public static final String PATH_CONFFILE = "config/config.properties";

public static final int MYCONSTANT_ONE = 1;

}

属性文件将是:

db.url=www.myurl.com

db.driver=mysql

要读取属性和常量将是:

// Constants

int i = Constants.MYCONSTANT_ONE;

// Properties

String url = Configurations.getInstance().getProperty(Constants.DB_URL);

你认为这是一个好方法吗?在Java中读取属性和常量的方法是什么?

提前致谢.

java中属于常量_java中的常量和属性相关推荐

  1. java定义常量_JAVA中定义常量方法

    JAVA中定义常量方法 (2013-01-28 14:30:19) 标签: it 一.常量定义的基本注意事项. 在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字) ...

  2. java定义字符串常量_Java中的字符串常量池

    ava中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new ...

  3. java变量存储位置_java 中变量存储位置的区别

    [原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...

  4. java new string 图_Java中String直接赋字符串和new String的一些问题

    今天课堂测试做了几道String的练习题,做完直接心态爆炸...... 整理自下面两篇博客: 首先先来看看下面的代码: public classStringTest {public static vo ...

  5. java中怪物移动_java中两大怪物,附带面试题!

    最近老是有小伙伴问类和Object相关的问题,感觉还是很多人对此不是很明白,那我们今天就干掉这两个怪物. 类介绍 Java 程序是由若干个类组成的,类也是面向对象编程思想的具体实现. 以下为类的定义: ...

  6. java有什么字符串_Java 中操作字符串都有哪些类?它们之间有什么区别

    1. String.StringBuffer.StringBuilder 原文出自<编写高质量代码:改善 Java 程序的 151 个建议> CharSequence 接口有三个实现类与字 ...

  7. JAVA中equals空_Java中为什么查询空字符串跟判断是否为null的时候可以不用equals?...(亲测)

    if(id!=null&&id!="") 代码中经常这样写,空字符串跟null 都不用equals吗? 首先,你的 id!="" 这种写法是错误 ...

  8. java中static作用_java中static作用详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以修饰静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  9. java final内存机制_Java中的内存处理机制和final、static、final static总结

    装载自:http://blog.csdn.net/wqthaha/article/details/20923579 Java程序运行在JVM上,可以把JVM理解成Java程序和操作系统之间的桥梁,JV ...

  10. Java字符串的重要性_java中的字符串相关知识整理

    字符串就是一系列的字符组合的串,如果写过C/C++的应该就了解,在字符串的操作上会有许多操作的函数与类,用于简化代码的开发.一方面是因为字符串在代码中会频繁用到,另一方面是因为字符串的操作非常麻烦. ...

最新文章

  1. 无向图的最短路径求解算法之——Dijkstra算法
  2. 国内哪里培训python比较好-现在哪家培训机构培训python比较靠谱?
  3. ASP.NET服务器端控件原理分析
  4. bzoj3551: [ONTAK2010]Peaks加强版
  5. Nginx的页面中文乱码解决方法
  6. java 构造函数和_Java类和构造函数
  7. LiveVideoStackCon上海2019音视频技术大会 7折早鸟票最后3天
  8. maf中anglearc_Oracle MAF中的LOV
  9. matlab生成exe-在没有安装matlab的电脑上运行matlab生成的exe
  10. 由浅到深理解ROS(4)
  11. 冲刺阶段(二)第五天 5月16日
  12. Redis面试 - 生产环境中的 redis 是怎么部署的?
  13. javascript 内置对象学习 笔记:
  14. 3d激光雷达开发(lidar使用)
  15. (整理)C/C++野指针
  16. 分位数回归-Quantile regression
  17. VR火得不行 那么它商业化的突破点到底在哪里?
  18. STM32F103C8T6个人学习之路01-芯片介绍
  19. 用CSS设计艺术字集锦
  20. 关于计算机天赋测试,这是一道你绝没测过的测试题,能测出你的天赋究竟是什么...

热门文章

  1. 使用powershell一次性创建用户,OU及组
  2. 贪心算法之——喷水装置一(nyoj6)
  3. Java(21)_ ^、|、运算符
  4. iis 防火墙防止恶意ip攻击
  5. HDU 5908 Abelian Period 暴力
  6. shell脚本中的括号和实例
  7. 工作中常用的正则表达式
  8. AppStore 上架注意事项及错误修改
  9. 数据库连接字符串.udl
  10. notepad++中的unexpected indent