以下代码用于创建多个bean并将其添加到列表中以供进一步使用
final List<Flow<Result>> tasks = new ArrayList<>();
for (long i : manyLongs) {
tasks.add((Flow<Result>) ctx.getBean("flowBeanName", "string" number));
}
manyLongs是一个约350000项的ArrayList。也许更多。我注意到这段代码需要大约2分钟才能运行。我试图创建并添加到任务的Bean是一个Prototype。
我可以理解,创建350K新对象可能需要时间,但对于两个字段的轻量级对象,2分钟似乎有点太多了。有没有办法在不改变设计的情况下有效地创建弹簧对象?
更新
Luiggi Mendoza 是对的。我在构造函数中有两点对对象创建造成了影响。第一个是我是一个懒惰的加载调用,但最糟糕的是构造函数中的JSON对象的反序列化,尽管它不需要在那里。
只是为了测试我检查了创建没有Spring的bean,虽然它明显更快,但它比spring更快几秒钟。