在web和非web环境都可以使用的属性文件属性读取java代码

代码如下:

 

package com.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class PropManager {

	private static final Log log = LogFactory.getLog(PropManager.class);

	public static Properties prop = null;
	static {
		prop = new Properties();

		InputStream in=new PropManager().getClass().getResourceAsStream("jdbc.properties");
		log.info("start load jdbc.properties config file ! in===== "+in);
		try {
			log.info("start load jdbc.properties config file ! ");
			prop.load(in);
			log.info("success load jdbc.properties config file done! ");
		} catch (IOException e1) {
			e1.printStackTrace();
			log.error(" load jdbc.properties config failure! ",e1);
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String jdbcUrl=prop.getProperty("jdbc.test.url");
		String jdbcUsername = prop.getProperty("jdbc.test.username");
		String jdbcPassword = prop.getProperty("jdbc.test.password");
		System.out.println("jdbcUrl=="+jdbcUrl);
		System.out.println("jdbcUsername=="+jdbcUsername);
		System.out.println("jdbcPassword=="+jdbcPassword);

		System.out.println("jdbcPassword=="+getProp("jdbc.admin.password"));

	}

	public static String getProp(String key)
	{
		return prop.getProperty(key);
	}

}

属性文件:

 

jdbc.properties:

内容如下:

 

#
jdbc.test.url=jdbc:mysql://192.168.0.1:3316/test?characterEncoding=GBK
jdbc.test.username=root
jdbc.test.password=123456

 

执行:输出:

 

2012-12-25 18:06:02,711 INFO [main] - com.test.PropManager.<clinit>(20) | start load jdbc.properties config file ! in=====
java.io.BufferedInputStream@14d3343
2012-12-25 18:06:02,711 INFO [main] - com.test.PropManager.<clinit>(22) | start load jdbc.properties config file !

2012-12-25 18:06:02,711 INFO [main] - com.test.PropManager.<clinit>(24) | success load jdbc.properties config file done!

jdbcUrl==jdbc:mysql://192.168.0.1:3316/test?characterEncoding=GBK
jdbcUsername==root
jdbcPassword==123456
jdbcPassword==123456

 

 

特别注意如下路径写法:

 

InputStream in=new PropManager().getClass().getResourceAsStream("jdbc.properties");

同时 保持 PropManager类和属性文件jdbc.properties:在一个目录下.

 

 

 

 

时间: 2024-11-17 07:09:06

在web和非web环境都可以使用的属性文件属性读取java代码的相关文章

如何应用Session开发非Web终端

session|web 如何应用Session开发非Web终端 协议s - 作者 sunggsun @ 20:27 Session(会话)是Web上较为有效的信息交互手段.因其使用方便.稳定.安全可靠而被众多Web开发者所青睐.尤其在互联网身份认证.网上电子购物等方面的应用更为广泛.无独有偶,笔者在开发一个财政项目的数据中心平台时,觉得数据传送部分的身份认证和信息交互与Web领域的Session控制极其相似.于是就想尝试一下这新技术,通过查阅大量资料后觉得在非Web客户端用Session进行信息

ASP.NET Web API Selfhost宿主环境中管道、路由

前言 前面的几个篇幅对Web API中的路由和管道进行了简单的介绍并没有详细的去说明一些什么,然而ASP.NET Web API这个框架由于宿主环境的不同在不同的宿主环境中管道中的实现机制和路由的处理方式有着很大的不同,所以我会将对应不同的宿主环境来分别的做出简单的讲解.  ASP.NET Web API路由.管道     ASP.NET Web API 开篇介绍示例     ASP.NET Web API 路由对象介绍     ASP.NET Web API 管道模型     ASP.NET

C# Web Service非Soap头(Session)身份验证方法

最近在做一个程序的Web Service,需要验证帐号才能使用Web Service提供的方法,首先想到把帐号信息附加在Soap头中传过去的方式,但在公司其他同事在使用非.net程序调用的时候发现有诸多不便.又Google了一镇子,发现一个使用Session的方式,说起来还是找"Web Service分段上传大附件"的时候看到的一个示例,难怪以前找Web Service验证的时候老找不到想要的结果.代码比较简单,主要代码如下: /// <summary> /// 授权验证,

一步一步学习SignalR进行实时通信_9_托管在非Web应用程序

原文:一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信\_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 前言 部署在控制台应用程序 安装自托管包 安装跨域包 winform客户端 设计界面 连接 完整实现效果 windows服务 创建服务 安装服务 启动服务 连接服务 结束语 源码下载 参考文献 前言 本章我们将学习将signalr服务托管在非web应用程序.之前我们一直是通过IIS部署s

绑定日志-maven jetty 环境下的Web项目在使用logback slf4j时,slf4j总是绑定java.util.logging

问题描述 maven jetty 环境下的Web项目在使用logback slf4j时,slf4j总是绑定java.util.logging Logger logger = (Logger) LoggerFactory.getLogger(UserAction.class); logger.info("loginUser:username{},password{}",username,password); java.lang.ClassCastException: org.slf4j.

log4j日志问题-在非WEB项目中配置了log4j日志的配置文件,日志应该打在哪个目录下的文件

问题描述 在非WEB项目中配置了log4j日志的配置文件,日志应该打在哪个目录下的文件 我发现只有在控制台可以看到日志,日志不会到印到文件里面,求帮忙解决一下 我以为是打印到log/test.log文件里面的,但是没有,自己创建了文件,也不会写进去 log4j.propertis文件内容如下: log_home=../log log4j.rootLogger=debug,Console log4j.appender.Console=org.apache.log4j.ConsoleAppender

C#取得Web程序和非Web程序的根目录的N种取法总结_C#教程

非Web程序 1.AppDomain.CurrentDomain.BaseDirectory 2.Environment.CurrentDirectory 3.HttpRuntime.BinDirectory The path to the current application's/bin directory. Web程序 HttpCurrent.Context.Server.Mappath();

java非web程序安全退出处理

问题描述 请教各位如何安全退出linux下非web的java程序,1.结束进程显然是不安全的,程序可能正在处理一些任务,可能会造成信息丢失或其他无法预料的错误2.通过修改xml等配置文件,让程序定期读取配置文件来判断是否应该退出也是不太好的做法请教下各位公司的这种java非web的服务程序是如何正常安全退出的,不胜感激!只有70分了,全撒了 解决方案 解决方案二:可以研究其它软件是如何退出的,例如tomcat.我以前做过一个,是程序打开监听一个端口,用telnet连接.如果在telnet里输入s

Tomcat中用web.xml控制Web应用详解

web|xml|控制|详解 1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义).所有部署描述符文件的顶层(根)元素为web-app.请注意,XML元素不像HTML,他们是大小写敏感的.因此,web-