properties概述:
properties文件是一种属性文件,这种文件以key=value格式存储内容。Java中可以使用Properties类来读取这个文件,使用Properties类中的getProperty(key)方法就能得到对应的数据。一般properties文件作为一些参数的存储,使得代码更加灵活。
在集合的知识中: properties继承了Hashtable,实现了Map接口
使用properties的作用
通常情况下,我们的项目完成后上线然后通过域名访问。在这上线过程中项目组长通常是创建var包打包交给运维处理。为了后期便于配置管理软件,常将诸如数据库连接配置(url、用户名和密码)、上传文件保存路径等配置信息写在Properties文件(拓展名为properties)中。不能将用户名、密码等信息写死在一个类中,将其写入properties文件中可以防止无法修改数据库信息。
使用方法
1.在src根目录创建properties类型文件
2.创建PropertiesUtil类对象;
3.调用PropertiesUtil类对象load方法加载properties类型文件;
4.调用Properties类对象getProperty方法获取properties类型文件中key所对应的数据;
import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * 获取db.properties文件的工具类 * * @author Administrator */ public class PropertiesUtil { private static Properties properties = new Properties(); static { InputStream inputStream = PropertiesUtill.class.getClassLoader().getResourceAsStream("db.properties"); try { properties.load(inputStream); } catch (IOException e) { e.printStackTrace(); } } /** * 依据key获取value值 * * @author Administrator */ public String getValue(String key) { return properties.getProperty(key); } public static void main(String[] args) { PropertiesUtil pUtil = new PropertiesUtil(); String url = pUtil.getValue("url"); String userName = pUtil.getValue("user_name"); String password = pUtil.getValue("password"); System.out.println(url + "," + userName + "," + password); } }
运行结果:jdbc:mysql://127.0.0.1:3306/test,root,root
明显与上面的properties文件的信息一致,说明成功的行使了作用。
总结
1.InputStream inputStream = PropertiesUtill.class.getClassLoader().getResourceAsStream("db.properties"); 是从类加载路径(Java Project对应bin路径;Java Web对应WEB-INF目录classes路径)取得文件的输入流
2.将连接数据库的信息写在了Java源文件中,该源文件被编译成class类型的文件,如果后期需要修改连接数据库信息,则需要再次编译Java源文件,这种方式比较麻烦,将数据库信息保存在你properties文件中,再使用(Java)PropertiesUtil类读取该文件,这样就方便了很多。