java静态初始化模块,在静态初始化程序块中加载java属性

首先,获取要从中加载属性的InputStream。这可能来自许多地点,其中包括一些最有可能的地方:

> A FileInputStream,通过硬编码或通过system property.指定的文件名创建。该名称可以是相对的(对于Java进程的当前工作目录)或绝对。

>资源文件(类路径上的文件),通过调用Class(相对于类文件)或ClassLoader(相对于类路径的根)调用getResourceAsStream获得。请注意,如果资源丢失,这些方法返回null,而不是引发异常。

> A URL,像文件名一样,可以通过系统属性进行硬编码或指定。

然后创建一个新的Properties对象,并将InputStream传递给其load()方法。一定要关闭流,不管有什么例外。

在类初始化器中,必须处理检查到的异常,如IOException。可以抛出未检查的异常,这将阻止类初始化。反过来,通常会阻止您的应用程序运行。在许多应用程序中,可能需要使用默认属性,或者回退到另一个配置来源,例如在交互式上下文中提示使用。

总而言之,它可能看起来像这样:

private static final Properties config;

static {

Properties fallback = new Properties();

fallback.put("key", "default");

config = new Properties(fallback);

try {

InputStream stream = ...;

try {

config.load(stream);

}

finally {

stream.close();

}

}

catch (IOException ex) {

/* Handle exception. */

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值