分享

用类加载器的方式管理资源和配置文件

 I_T_馆 2014-07-20
今天我们来java是如何加载properties文件的.看看下面这个项目的结构
 
 
文件config.properties放在了项目的根目录下.有两个问题,第一个.我把文件放到了项目的根目录下,程序是如何找到这个文件的呢?第二个问题,这个配置文件可以不可以放在其他地方呢?看看我们上一节"框架的概念及用反射技术开发框架的原理"中讲到的从配置文件中读取我要加载的类.
 
 
 那么这里为什么直接写config.properties就可以了呢?看第一张图片,因为,我把它放到了项目目录下,系统读取的时候,会默认去这个目录下查找名字为config.properties文件,这里的路径是相对路径.相对路径的弊端:我可以在C盘下运行这个项目,也可以在D盘下运行这个项目,只要我指对了项目的目录,我在哪个盘下运行都可以,这是相对路径就有问题了.到底是C盘还是D盘呢?看来相对路径不行.那绝对路径可以么?加入我把路径写成绝对路径D盘,结果拷贝项目到其他人的机器上运行时发现,人家机器上没有D盘,这时候也不行了.用觉得路径没有问题.但这个D:盘不是写死了,而是通过程序读取的.在java Web中有一种获取项目的相对路径${classPath}类似这种,就很好的解决这个问题了.
 
我们还有一种得到资源文件的方式,这种方式是非常常用的.
每一个.class文件,在运行的时候都要被加载到硬盘上来,就是说要有一个东西,把.class文件加载到硬盘上来.这个东西就是 类加载器.类加载器就是负责把.class文件加载到硬盘上来的.既然类加载器可以加载.class文件,那他是不是也可以加加载普通文件呢?答案是肯定的.

 
  
 
将来我们学习的框架,Struts,Spring,Hibernate.他们的配置文件都放在src目录下,因为,他们默认都是使用类加载器去加载配置文件的.类加载器要去classpath根目录开始查找.因此首先这些文件要出现在classpath根目录下,因此就必须在源文件src目录下,这样编译后才能到classpath目录下

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多