本人是新手,在自学java web,再做一个练手项目时,在properties配置文件具体存放位置遇到了问题,现已基本解决,分享一下解决办法,还请高手勿喷。
在程序中载入properties配置文件时,我先在只知道两种办法:1.是利用servlet中的servletContext得到;2.是利用java类加载本地文件的方式得到。下面来具体说一下两种方法:
//1. 首先介绍利用servletContext的方法,这种方法可以直接将properties配置文件放在WebRoot目录下
//读取位于WebRoot中的userInfo.properties文件
//getResourceAsStream方法会以InputStream方式返回一个IO流
InputStream inputStream = this.getServletContext().getResourceAsStream("userInfo.properties");
//创建properties
Properties properties = new Properties();
properties.load(inputStream);
out.println("username " + properties.getProperty("username"));
out.println("password " + properties.getProperty("password"));
//2. 下面介绍一下利用java类加载本地文件的方式
//需要注意的是properties文件的存放位置,我是放在classpath中的,也就Tomcat 7.0\webapps\项目名称\WEB-INF\classes这个目录下面。需要在本地文件夹中手动存放,如果在编译器(我用的myeclipse)下面,是看不到这个目录的。
//再说一下加载方法:
InputStream in = getClass().getClassLoader().getResourceAsStream("userInfo.properties");
Properties properties = new Properties();
properties.load(in);
我猜想是因为src的.java文件被编译到了class这个目录下,所以想要找到配置文件,还需要将配置文件放在classs目录下。也不知道对不对,还请高手解答。谢谢。
文章补充:在过了将近一个月以后,学习到struts2的时候,在李刚编写的<轻量级Java EE企业应用实战 第二版>一书中,介绍了在“Eclipse生成、部署web项目时,会自动将src路径下除*.java外的所有文件都复制到web应用的classes路径下”,所以,我认为,关于property文件的存放位置,我们也可以使用该机制。直接在项目的src中新建property文件,这样项目部署的时候,就可以自动放在classes路径下,而不需要手动的配置了。
来源:oschina
链接:https://my.oschina.net/u/1258919/blog/159332