一. 前言

日常我们做项目中,我们经常会遇到这样的情况:由于开发环境和生产环境的不同,项目部署在生产环境之前,有些参数我们并不知道如何取值。例如:数据库链接设定,我们在部署生产环境之前,无法预知客户的数据库连接地址是什么,也无法预知数据库的用户名和密码。这种情况下,就需要我们将数据库的连接参数保存到某个文件中,项目需要链接数据库的时候,就从该文件中获取相关参数,以保证系统在生产环境中的正常运转。

为了解决这种问题,我们就需要用到JAVA的properties文件。

二. 介绍

JAVA的配置文件是以properties为扩展名的,其内容为键值对形式存储,且键名和键值都是字符串格式。JAVA提供java.util.Properties类,可以非常方便的读取配置文件的信息。

三. 使用

1. 新建JAVA工程。

2. 新建properties文件,名称为application.properties。

SQL.url=jdbc:sqlserver://127.0.0.1; DatabaseName=BaseFrame

SQL.userName=sa

SQL.passWord=-+

其中,SQL.url定义了数据库的链接地址;SQL.userName定义了用户名;SQL.passWord定义了密码。

3. 新建Main.class并为其添加main方法。

packagecom.luych.stu;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.Properties;public classMain {public static void main(String[] args) throwsException {//将配置文件加载到流中

InputStream in = Main.class.getClassLoader().getResourceAsStream("application.properties");//创建并加载配置文件

Properties pro = newProperties();

pro.load(in);//获取配置文件定义的值

String url = pro.getProperty("SQL.url");

System.out.println("配置文件中SQL.url的值为:"+url);

String userName= pro.getProperty("SQL.userName");

System.out.println("配置文件中SQL.userName的值为:"+userName);

String passWord= pro.getProperty("SQL.passWord");

System.out.println("配置文件中SQL.passWord的值为:"+passWord);//使用

Connection con =DriverManager.getConnection(url, userName, passWord);

String sql= "select * from tbUser";

PreparedStatement pstmt=con.prepareStatement(sql);

ResultSet result=pstmt.executeQuery();int col =result.getMetaData().getColumnCount();

System.out.println("============================");while(result.next()) {for (int i = 1; i <= col; i++) {

System.out.print(result.getString(i)+ "\t");if ((i == 2) && (result.getString(i).length() < 8)) {

System.out.print("\t");

}

}

System.out.println("");

}

System.out.println("============================");

}

}

打印结果为:

配置文件中SQL.url的值为:jdbc:sqlserver://127.0.0.1; DatabaseName=BaseFrame

配置文件中SQL.userName的值为:sa

配置文件中SQL.passWord的值为:-+

============================705244A7-B642-4161-9EC8-966044F15F16 admin 系统管理员 123 15295699492 123@abc.com

4FE0FF3F-B015-482D-AB71-3321D57A7EF4 test1 Test1 123 15295699492 123@abc.com

============================

如此,我们就可以将配置文件中的值读取并使用了。

四. 目录结构

五. 总结

其实大家可能会想到:我直接将url、userName、passWord定义final变量中不就可以了嘛?这样的缺点是我们在将项目部署到生产环境之前,还需要重新调整我们的JAVA代码,并编译生成war包或jar包。而定义到环境变量中则不需要重新编译即可正常运行。

java 生产配置文件管理_JAVA基础——使用配置文件相关推荐

  1. JAVA生产环境验证_Java生产环境下性能监控与调优详解

    本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优:通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出.cpu负载飙高等问题:学会线上代码调试,Tomcat.Nginx, ...

  2. java io流 教程_Java基础教程:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:指的是从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列 ...

  3. java环境配置步骤_java环境配置及安装的详细步骤

    java环境配置及安装的详细步骤 发布时间:2020-04-22 14:15:59 来源:亿速云 阅读:141 作者:小新 今天小编给大家分享的是java环境配置及安装的详细步骤,相信很多人都不太了解 ...

  4. java 运行时类型_Java基础之RTTI 运行时类型识别

    运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息. 多态(polymorphism)是基于R ...

  5. java package报错_Java基础知识总结 - 超详细篇(上)

    1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre. 2,JRE:Java Runtime Environment,java程序的运行环境,ja ...

  6. java spring 配置词典_java之spring mvc之拦截器

    java之spring mvc之拦截器 1. springmvc 中的拦截器是由实现 HandlerInterceptor 或者继承 HandlerInterceptorAdapter 来实现的. 2 ...

  7. java的技术定义_java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...

  8. java 输出一个爱心_java基础 之 几个常用的类

    在以上的文章中我们看了Java的一些基础的使用,今天我们主要学习一下Java的几个常用的类 java操作系统底层Sytem类: System类代表当前Java程序的运行平台,程序不能创建System类 ...

  9. java怎么快速补缺_Java基础查漏补缺(1)

    Java基础查漏补缺 String str2 = "hello"; String str3 = "hello"; System.out.println(str3 ...

最新文章

  1. vue java 插件开发_实习模块vue+java小型全栈开发(三)
  2. cursor is oracle 日期_Oracle时间计算------日期格式参数含义说明
  3. applicationcontext理解使用
  4. P4827-[国家集训队]Crash 的文明世界【树形dp,换根法,斯特林数】
  5. python字符串百分号_Python字符串格式化的2种方法
  6. OpenJudge NOI 1.7 26:字符串最大跨距
  7. 2015年关注的技术书籍
  8. 一次 MySQL 索引面试,被面试官怼的体无完肤!
  9. android studio不显示标题,Android Studio:活动预览不显示标题栏
  10. android自定义对号,Android-手势识别(普通手势识别:上 下 左 右 ;自定义手势识别:对号,错号 等)...
  11. Webmax简易入门操作手册(二)
  12. 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)
  13. bom成本分析模型_拆解苹果HomePod发现BoM成本高达248.4美元
  14. The Little Match Girl,摘自iOS应用Snow White and more stories
  15. 未来的趋势—电子签约流行
  16. 【实验四 循环结构】7-2 sdut-C语言实验—两个数比较
  17. 教你代码实现抢红包功能
  18. 黄海广的《机器学习》公开课!
  19. 建设你的知识结构:一份阅读书目单
  20. 老爸、老爸我爱你!!!---Leo写在父亲节

热门文章

  1. Mysql报错时区错误invalid timezone
  2. PHP的上传文件思路及其代码
  3. HTML的--iframe
  4. linux计算机中文件意思,shell在计算机语言中一般是啥意思,比如在linux中
  5. lampp mysql 等待响应时间很长_XAMPP 的 phpMyAdmin 就会有文件大小限制、上传超时等各种问题...
  6. 国内Linux shell,管理你的 shell 环境 | Linux 中国
  7. java通过jxl处理execl空行_jxl操作Excel导入数据库之空行的处理
  8. 职称计算机应用能力考试模拟题,2016年职称计算机考试模拟题
  9. csp 通信网络 java_CSP 通信网络
  10. php pdf 加密 签名 时间戳,在现有PDF签名上添加签名时间戳