Java读取WEB-INF目录下的properties配置文件
2013-07-31 16:15
666 查看
如何在Java代码中读取WEB-INF目录下的properties配置文件,下文给出了一个解决方案。
我们习惯将一些配置信息写在配置文件中,比如将数据库的配置信息URL、User和Password写在配置文件中,这样部署系统的时候,不需要修改代码,而只需要修改配置文件即可。
我将配置文件放在MyEClipse工程文件夹下的WEB-INF目录,在Java代码中读取配置文件的代码是这样的:
这样的话,我们就得到了当前项目WEB-INF的目录。我们将数据库的配置信息写在parameter.properties文件中,这个文件是放在WEB-INF目录下的,该配置文件中的内容如下:
目前越来越多使用XML文件代替properties文件来存放配置信息,所以,我们也可以将xml文件放在WEB-INF目录下,通过dom4j等工具来读取xml文件。
----------------------------------------------------2015.12.16更新------------------------------------------------------
用类加载器的方式管理配置文件
方法一:
使用了ClassLoader类加载器,此时需要写上配置文件的包名路径,最前面不需要加斜杠。
InputStream is = ReflectTest2.class.getClassLoader().getResourceAsStream("cn/itcast/day1/config.properties");
方法二:
InputStream is = ReflectTest2.class.getResourceAsStream("config.properties");
如果配置文件和ReflectTest2在同一个包下,直接写配置文件名;
如果配置文件在其他包下,需要写绝对路径,路径最前面还需要带上斜杠。
我们习惯将一些配置信息写在配置文件中,比如将数据库的配置信息URL、User和Password写在配置文件中,这样部署系统的时候,不需要修改代码,而只需要修改配置文件即可。
我将配置文件放在MyEClipse工程文件夹下的WEB-INF目录,在Java代码中读取配置文件的代码是这样的:
String path = ParametersReader.class.getResource("/").getPath(); String websiteURL = (path.replace("/build/classes", "").replace("%20"," ").replace("classes/", "") + "parameter.properties").replaceFirst("/", "");第一行代码中的ParametersReader.class指的是当前类的名字,path变量中存放的实际上是当前类所在的路径。
这样的话,我们就得到了当前项目WEB-INF的目录。我们将数据库的配置信息写在parameter.properties文件中,这个文件是放在WEB-INF目录下的,该配置文件中的内容如下:
#JDBC MySQL Connection mysql_url=jdbc:mysql://127.0.0.1:3306/mydatabasename mysql_user=root mysql_password=123456那么针对上述配置文件,读取该配置文件的完整代码应该是这样的:
public static void getParameters() {代码中的MYSQL_URL,MYSQL_USER,MYSQL_PASSWORD这三个变量都是定义好的静态变量,getParameters()方法是用来给这三个变量赋值的。
String path = ParametersReader.class.getResource("/").getPath(); String websiteURL = (path.replace("/build/classes", "").replace("%20"," ").replace("classes/", "") + "parameter.properties").replaceFirst("/", "");
Properties properties = new Properties();
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(websiteURL);
properties.load(fileInputStream);
MYSQL_URL = properties.getProperty("mysql_url");
MYSQL_USER = properties.getProperty("mysql_user");
MYSQL_PASSWORD = properties.getProperty("mysql_password");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fileInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
目前越来越多使用XML文件代替properties文件来存放配置信息,所以,我们也可以将xml文件放在WEB-INF目录下,通过dom4j等工具来读取xml文件。
----------------------------------------------------2015.12.16更新------------------------------------------------------
用类加载器的方式管理配置文件
方法一:
使用了ClassLoader类加载器,此时需要写上配置文件的包名路径,最前面不需要加斜杠。
InputStream is = ReflectTest2.class.getClassLoader().getResourceAsStream("cn/itcast/day1/config.properties");
方法二:
InputStream is = ReflectTest2.class.getResourceAsStream("config.properties");
如果配置文件和ReflectTest2在同一个包下,直接写配置文件名;
如果配置文件在其他包下,需要写绝对路径,路径最前面还需要带上斜杠。
相关文章推荐
- Java读取WEB-INF目录下的properties配置文件
- Java读取WEB-INF目录下的properties配置文件
- javaweb读取任意目录的下的properties配置文件(解决普通java类读web-inf下任意目录)
- Java读取src目录下的properties配置文件
- 读取web-inf目录下的spring配置文件
- Java Web项目如何读取.properties配置文件
- Junit单元测试Spring读取classes或者WEB-INF目录下的配置文件
- java文件读取web-inf下的spring的xml配置文件
- WEB 项目中读取 WEB-INF 目录下配置文件的方法
- 读取web项目web-inf目录下的jdbc.properties文件
- java读取WEB-INF目录下文件
- Java web 项目读取src或者tomcat下class目录下的xml文件或者properties文件
- Spring Junit 读取Resource、WEB-INF目录下的配置文件
- javaweb读取配置文件的4种方法
- Spring MVC Junit测试实例 附:读取WEB-INF下配置文件的方法
- JAVA PropertiesConfig读取配置文件出现乱码
- All about JAVA 读取配置文件的方法 (这里是config.properties)
- Java 读取.properties配置文件信息
- JAVA中properties配置文件的两种读取方式
- java中读取properties配置文件用例