java web开发中public static final定义常量还是写入properties文件,两者区别
2017-10-23 16:56
567 查看
1、首先properties文件一般是配置型常量文件,意思就是项目在部署的时候可以去修改该文件的常量值,修改后启动即可生效
2、通过public static final在类中定义的常量是属于永不可变的东西(当然要变化的话会非常麻烦,要修改改常量值,要把整个项目重新编译打包,如果不重新编译的话值是不会变的)
3、properties文件应用场景,一般可以用于项目使用的常量配置,这里说的常量是可以改变的,改变后启动项目随即生效。比如项目的名称,数据库的IP、数据库用户名、数据库密码、项目部署路径、附件等静态资源路径。因为项目迁移后或者项目从开发环境或测试环境迁移到生产环境需要对这些常量进行变更,而变更后无需重新编译源代码。
4、public static final 定义的常量应用场景:这类常量一旦项目编译好后就不能再变了,项目编译后将这些常量已经固化到class文件中(具体可查看java对中public static final的编译过程)。一般情况下为了程序编写规范可以适当设计中public static final静态常量,但这类常量一般事先定义好,规范好,当然在开发过程中还是可以变更的,一旦变更很多代码都需要改的。比如项目的错误代码等常量可以采取此种方式,那么所有的代码中1都代表成功。
public
class
ErrorCode
{
2、通过public static final在类中定义的常量是属于永不可变的东西(当然要变化的话会非常麻烦,要修改改常量值,要把整个项目重新编译打包,如果不重新编译的话值是不会变的)
3、properties文件应用场景,一般可以用于项目使用的常量配置,这里说的常量是可以改变的,改变后启动项目随即生效。比如项目的名称,数据库的IP、数据库用户名、数据库密码、项目部署路径、附件等静态资源路径。因为项目迁移后或者项目从开发环境或测试环境迁移到生产环境需要对这些常量进行变更,而变更后无需重新编译源代码。
4、public static final 定义的常量应用场景:这类常量一旦项目编译好后就不能再变了,项目编译后将这些常量已经固化到class文件中(具体可查看java对中public static final的编译过程)。一般情况下为了程序编写规范可以适当设计中public static final静态常量,但这类常量一般事先定义好,规范好,当然在开发过程中还是可以变更的,一旦变更很多代码都需要改的。比如项目的错误代码等常量可以采取此种方式,那么所有的代码中1都代表成功。
public
class
ErrorCode
{
public static final int CODE_ACCESS_DENIED =1; public static final int CODE_UNAUTHORIZE =0; }
总结:properties用于项目开发完毕后随时可变的常量,而public static final 只适用于项目开发完毕后永不可变的常量。
相关文章推荐
- Java修饰符:public、protected、private、abstract、static和final区别
- Java修饰符:public、protected、private、abstract、static和final区别
- web开发-java实现读文件修改特定字符之后写入文件-学习笔记七
- Java-一直弄不懂public,private,final,static的区别
- java基础学习(7)浅析final,private,public,protected,static等关键以及它们的区别的联系
- java web开发中获取tomcat上properties文件内容的方法
- SpringMVC_v02中的总结(web项目、java项目中引入Config.properties,加载hibernate映射文件的配置的区别)
- java中的关键字static(静态变量)和final定义常量
- java中的关键字static(静态变量)和final定义常量
- java web开发,bean数据放在request、response还是servletcontext中?
- java 读取和写入properties文件
- 接口中定义变量必须为public static final的原因
- Java中static 和final的区别 (转载)
- 接口中定义变量必须为public static final的原因
- Java web 开发 文件上传讲解
- Java配置文件Properties的读取、写入与更新操作
- java读取mysql数据库的blob字段和Oracle数据库的Blob字段的区别【读取properties文件】
- JAVA基础--final、static区别以及类加载顺序
- 谈Java Properties配置文件, 是J2EE容器的命令行绑定, 还是使用Deploy自适应的绑定?
- java.lang.System 的in是final的,为什么要有public static void setIn(InputStream in)方法?