我们有一个应用程序的连接池组件(JAR 文件)。截至目前,应用程序连接详细信息已捆绑在 JAR 文件中(在 .properties
文件中)。
我们可以让它更通用吗?我们能否让客户端告知属性文件详细信息(路径和文件名)并使用 JAR 获取连接?
在客户端代码中有这样的东西有意义吗:
XyzConnection con = connectionIF.getConnection(uname, pwd);
除此之外,客户端将指定(以某种方式???)具有要连接的 URL、超时等的属性文件详细信息。
最佳答案
最简单的方法,使用 -D 开关在 java 命令行上定义系统属性。 该系统属性可能包含您的属性文件的路径。
例如
java -cp ... -Dmy.app.properties=/path/to/my.app.properties my.package.App
然后,在您的代码中您可以执行以下操作(为简洁起见未显示异常处理):
String propPath = System.getProperty( "my.app.properties" );
final Properties myProps;
if ( propPath != null )
{
final FileInputStream in = new FileInputStream( propPath );
try
{
myProps = Properties.load( in );
}
finally
{
in.close( );
}
}
else
{
// Do defaults initialization here or throw an exception telling
// that environment is not set
...
}
关于java - JAR 文件如何读取外部属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3457918/