当用户点击菜单时,我使用Spring创建表单并自动在布局区域中显示它们:
ApplicationContext ac = new AnnotationConfigApplicationContext("package");
AbstractComponent form = (AbstractComponent)ac.getBean(formName);
layout.addComponent( form );
一切正常,问题是,有几百种表单,所以当用户点击菜单时,它持续差不多8秒钟来加载表单。问题是,如果我理解的话,bean容器会立即显示所有形式?
有没有办法提高性能,我正确使用ApplicationContext
?
提前致谢
答案 0 :(得分:1)
好的,问题是由于新手错误造成的。当用户单击表单时,负责创建ApplicationContext的方法每次都创建一个新的ApplicationContext。因此应用Singleton模式解决了问题:
公共类FormLoader { static ApplicationContext ac = null;
public FormLoader() {
if( ac == null ) {
ac = new AnnotationConfigApplicationContext("package");
}
}
public void loadForm( ... ) {
AbstractComponent form = (AbstractComponent)ac.getBean(nombreForm);
layout.addComponent( form );
}
}