`
arual
  • 浏览: 10777 次
社区版块
存档分类
最新评论

关于properties

 
阅读更多

用eclipse 集成tomcat时,注意配置output的folder:



 


 在传统java类中,一般使用FileInputStream读取.properties 文件

FileInputStream in = new FileInputStream("/db.properties");
Properties prop = new Properties();
prop.load(in);
System.out.println(prop.getProperty("oracle-url"));

 FileInputStream 需要的是相对路径或是绝对路径。传统java类中,相对路径的根目录指类所在的根目录。

但在servlet中,相对路径的根目录变成了{tomcat}/bin/目录(因为java虚拟机是在此目录运行)。所以在servlet中便不适合使用相对路径。而适合使用绝对路径。使用方法如下:

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
		FileInputStream in = new FileInputStream(path);
		Properties prop = new Properties();
		prop.load(in);
		System.out.println(prop.getProperty("oracle-url"));
	}

 

但其实ServletContext还提供了更优雅的方式load .propertes 文件:

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
		//注意, 虽然此时db.properties 文件是在src文件夹下,但deploy之后,src中的内容都是是放在/WEB-INF/classes/下的。
		Properties prop = new Properties();
		prop.load(in);
		System.out.println(prop.getProperty("oracle-url"));
	}

 

 

当然,如果不在servlet容器中,而在一般的类,如UserDao类中如何load properties 文件呢:

String path = UserDao.class.getClassLoader().getResource("db.properties").getPath();

FileInutStream in = new FileInputStream(path);
Properties prop = new Properties();
prop.load(in);
System.out.println(prop.getProperty("oracle-url"));

 

此方法是使用类加载器按类的方式load 属性文件。缺点: 类加载器对某个类只会加载一次。如果加载过后,手动改了/classes/db.properties 文件,人为地重新执行此function, 类加载器发现它已经加载过这个文件了,便不会重新加载了。

另一种方法:

InputStream in = UserDao.class.getClassLoader().getResourceAsStream("db.properties");
Properties prop = new Properties();
prop.load(in);
System.out.println(prop.getProperty("oracle-url"));

 

此方法能将properties文件load 多次。每次此方法执行, 都会再次load此属性文件。

 

下面这个小例子针对的是系统参数:

 

public class TestProperties {
public static void main(String[] args){
for (Object p : System.getProperties().entrySet()) {
Map.Entry<String,String> entry = (Map.Entry<String, String>)p;
System.out.println(entry.getKey() + "=" + entry.getValue());
}
}
 
public static String getDeploymentEnv()
{
String env = System.getProperty("env");
if(!env.isEmpty())
{
env = System.getenv("env");
}
if(!env.isEmpty())
{
env="";
System.setProperty("env", env);
}
 
return env;
}
 
}

 

  • 大小: 29.2 KB
分享到:
评论

相关推荐

    properties editor 6.0.5

    以下是一些关于Properties Editor 6.0.5的关键知识点: 1. **界面与集成**:该插件无缝集成到Eclipse IDE中,用户可以在Eclipse的文件浏览器中直接打开`.properties`文件,享受定制化的编辑体验。其用户界面友好,...

    Properties-PCI设备补丁一览表1

    本资源是一份关于 Properties-PCI 设备补丁的详细一览表,涵盖了声卡、LPC 和以太网等多个方面的 PCI 设备补丁信息。 声卡补丁 在声卡补丁部分,表中列出了六代以前和六代及以后的声卡补丁信息。其中,六代以前的...

    设置Eclipse中properties文件打开方式myeclipse一样有source和properties两个视图方法

    - 在菜单栏中选择“帮助”(Help) &gt; “关于Eclipse SDK”(About Eclipse SDK)。 - 在弹出的窗口中,您可以查看到当前Eclipse的版本信息,包括平台版本和构建日期等。 #### 2. 下载与Eclipse版本匹配的JBossTools插件...

    java 改变Properties文件中的键值

    以下是一些关于如何在Java中改变Properties文件中键值的具体步骤和相关知识点: 1. **导入所需的库** 在Java代码中,首先需要导入`java.util.Properties`和`java.io.*`等相关的类库,以便进行读写Properties文件的...

    Android代码-androidjava通用代码关于用properties存储打印的Log.zip

    这个名为"Android代码-androidjava通用代码关于用properties存储打印的Log.zip"的压缩包提供了一个解决方案,即使用Properties类来存储和读取日志。 Properties类是Java标准库中的一个类,主要用于处理属性键值对,...

    java读写properties配置文件

    ### Java读写Properties配置文件详解 #### 一、引言 在Java开发中,`Properties`类被广泛用于处理各种类型的配置文件。...以上就是关于Java读写`Properties`配置文件的详细讲解。希望对你有所帮助!

    在javascript文件中读取properties文件需要的插件jquery.i18n.properties-min-1.0.9.js

    在提供的压缩包中,`jquery.i18n.properties-1.0.9.js`是插件的源文件,而`使用方法地址.txt`可能包含了更多关于如何使用这个插件的详细说明。阅读这个文本文件可以帮助你更好地理解和应用这个插件。总之,`jquery....

    Properties和xml读写操作

    根据给定文件的信息,我们可以总结出关于 Java 中 Properties 和 XML 的读写操作的相关知识点。 ### 一、Properties 文件的读写操作 #### 1. 读取 Properties 文件 在 Java 中,`Properties` 类用于处理属性文件...

    eclipse中Properties Editor插件

    至于压缩包“Properties Editor”可能包含的是关于该插件的安装文件、文档、示例或者更新信息。如果你下载并解压这个包,通常会有一个详细的README文件指导你如何安装和使用这个插件。这将帮助你进一步理解和利用...

    myeclipse中安装properties插件

    `myeclipse中安装properties插件`这个话题就是关于如何在MyEclipse中解决这个问题,让开发者能够更加便捷地编辑和管理`.properties`文件。 `.properties`文件通常使用ASCII编码,但为了支持多语言,它们可能包含...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    接下来,关于“写入后读取正常,但文件数据未更新”的问题。这通常是由于缓存或文件流没有正确关闭导致的。在写入Properties文件时,确保使用了`Properties.store()`方法,并在操作完成后关闭流: ```java ...

    Java源码读写Properties文件.rar

    这个压缩包“Java源码读写Properties文件.rar”包含了一份关于如何使用Java来读取和写入Properties文件的源代码示例。下面我们将详细探讨这个主题。 首先,Properties类是Java的标准库类,位于`java.util`包下,它...

    Eclipse属性编辑器(PropertiesEditor)及安装说明.rar

    5. 配置:"Eclipse属性编辑器(PropertiesEditor)安装说明.rtf"文件很可能是详细的安装指南,包含了更多关于配置和使用的步骤。在安装过程中,遵循这份文档的指示可以帮助解决可能出现的问题。 PropertiesEditor的...

    MyEclipse Properties 插件

    提到的压缩包文件中,"property命令.txt"可能是关于使用Properties文件的相关命令或者操作指南,而"jp.gr.java_conf.ussiy.app.propsearch_2.0.0_for_eclipse3.1.zip"是一个适用于Eclipse 3.1版本的插件包,可能包含...

    properties文件修改

    关于`.properties`文件的修改,以下是一些关键知识点: 1. **文件结构**:`.properties`文件由键值对组成,每行代表一个键值对,例如`username=admin`。键和值之间可以用等号`=`或冒号`:`分隔,一般建议使用等号。 ...

    myeclipse插件——properties编辑器

    根据给定的部分内容,我们可以看到关于安装Properties编辑器插件的具体步骤: 1. **启动Eclipse的软件更新功能**:首先,在Eclipse中找到并启动“Software Update”功能,这通常位于“Help”菜单下。 2. **查找新...

    spring+sendmail+模板+properties+vm

    而“spring+sendmail+模板+properties+vm”这一主题则涉及到Spring框架中关于电子邮件发送以及使用模板和配置文件的部分。以下是这些知识点的详细说明: 1. **Spring Sendmail**: Spring框架提供了`JavaMailSender`...

    jdbc.properties

    当配置文件用,在里面读取一些关于路径方面的设置(如ant中的build.properties) 存放一组配置.(类似win下ini, 还要简单些, 因为没有section) 由于难以表达层次, 复杂点可以用xml做配置. 通俗点讲就相当于定义一个...

    jquery.i18n.properties在asp.net里的应用

    about=关于我们 ``` 这样的文件会为每种语言创建一个版本,如 zh_CN.properties(中文)、en_US.properties(美国英语)等。 3. **在 ASP.NET 中集成 jQuery.i18n.properties** - **创建资源文件**:在 ASP.NET...

    Laravel开发-properties

    在Laravel框架中,"properties"通常指的是模型(Model)的属性或字段,它们是数据库表中的列...在提供的`properties-master`压缩包文件中,可能包含了关于Laravel模型属性的示例代码或教程,进一步深入学习会有所帮助。

Global site tag (gtag.js) - Google Analytics