java properties web_JavaWeb项目配置化之Properties类的使用

在项目中的应用见: https://github.com/ygj0930/CoupleSpace

在我们开发项目时,有很多地方会出现重复的代码或者日后可能需要修改的代码,比如:连接数据库、设置项目编码格式、设定文件上传保存目录等等。重复代码或许可以用静态变量来实现全局调用而不必重复出现,但是毕竟是写死在代码里的,日后需要修改时还要修改源码,比较麻烦而且不便于维护。Java给我们提供了Properties类,可以用来解决这些问题。

Properties类以"key=value"形式保存了一系列的配置信息,其中Key与value都是String类型。这样,我们可以把需要重复用的信息,或者日后需要修改的信息以配置的形式从源码中独立出来。修改时只需修改Properties文件,在源码中通过properties类对象来读取信息即可同步到整个项目。下面,介绍一下JavaWeb项目中使用Properties文件使项目配置化。

一:在项目的src目录下新建  .properties  后缀名的文件。

把文件放在src目录下,在部署时会自动部署到classes目录下的。放到别处是获取不到文件的。

另:Properties文件名首字母不能大写否则也是找不到文件的。

二:配置化项目

用文本编辑文件或者在myeclipse中打开这个配置文件,把项目中可以配置化的信息提取出来,以 key=value  形式书写。注意一行一个。

一般可以配置化的信息有:项目中重复出现的语句,日后需要修改的信息等。比如:数据库驱动、数据库url、数据库名以及密码、项目编码格式、文件上传路径、临时文件保存路径等等。

a85f38b0afa02329ea64cff305535459.png

三:在项目中获取配置信息

在properties文件中配置好信息后,在项目中可以通过Properties类对象来读取信息。分四步走:

1:新建properties对象

2:创建输入流打开properties文件。

3:properties对象从输入流加载配置信息

4:通过properties.getProperties(“key”)获取具体配置信息

比如:

Properties properties;publicArticleDAO() {super();

properties=newProperties();

InputStream in=ArticleDAO.class.getClassLoader().getResourceAsStream("config.properties");try{

properties.load(in);

Class.forName(properties.getProperty("dbDriver"));

con = DriverManager.getConnection(

properties.getProperty("dbUrl"), properties.getProperty("dbName"), properties.getProperty("dbPass"));

}catch(IOException e) { e.printStackTrace(); }

}

这里要注意三点:

1:

InputStream in=当前类名.class.getClassLoader().getResourceAsStream("config.properties");

2:

InputStream in=当前类名.(如果是Java App,对应src;如果是Java Web App,对应class).getClassLoader().getResourceAsStream("config.properties");

3:创建输入流时,Test.class.getClassLoader().getResourceAsStream()方法直接获得字节输入流,所以不用考虑路径中是否包含中文的问题,如果是通过Test.class.getClassLoader().getResource()方法,因为该方法返回值是URL,如果项目的目录中有中文命名,则获得的URL会出现乱码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值