0

我正在用 spring 替换用于加载配置文件的属性工厂。所以现在从技术上讲,我的配置文件应该通过 Apache commons 配置使用 spring DI 加载。到目前为止,我已经创建了一个 Action 类和一个 POJO 视图类,它具有 Loadtime、FileModified 时间、文件名等的 getter 和 setter。Action 有一个配置类列表注入到构造函数中,并且在我循环的执行方法中配置类为每个类创建一个简单的视图对象。然后我将值设置为我从配置中获得的视图对象,如下所示:

 public final String execute() {
    configViewList = new ArrayList<ConfigurationViewObject>();
    if ((this.configurationList != null) && (this.configurationList.size() != 0)) {
        for (PropertiesConfiguration config : configurationList) {
            ConfigurationViewObject view = new ConfigurationViewObject();
            view.setFileName(config.getFileName());
            view.setFileModificationTime(new Date(config.getFile().lastModified()));
            configViewList.add(view);
        }
        return SUCCESS;
    } else {
        addActionError("List is null.");
        return Action.ERROR;
    }
}

好吧,现在我想找出加载时间。知道如何找到弹簧加载文件的时间。如果有任何方法可以为我获取它,我已经完全搜索了 PropertiesConfiguration 类和 File 类,但是找不到任何方法。我将不胜感激期待已久的帮助。

4

2 回答 2

0

找到它非常棘手,因为 Spring 永远不会将它暴露给外界,这是正确的,为什么有人想知道配置文件何时加载?

但是,这就是我要做的。当 Spring 创建加载一个需要设置一些属性的类时,将加载 Spring 配置[这不是任何地方的正式文档,而是它在逻辑上的方式]。现在下一部分是找出首先创建需要属性的类实例。同样没有starighforward的方式,但仍然是一个appox。方法是将aSystem.currentTimeMillis()放入Class的构造函数中。所以这会给你一个近似值。加载属性文件的时间。

于 2013-09-09T15:13:25.677 回答
-1

对于一个简单的方法来做到这一点......您可以尝试long before = System.currentTimeMillis()在调用检索属性之前调用,并在检索属性之后立即调用另一个long after = System.currentTimeMillis()调用,并查看差异的值,after - before.

于 2013-09-09T14:53:51.887 回答