Java 使用spring ApplicationContext时的性能问题
我使用Spring创建表单,并在用户单击菜单时自动在布局区域中显示它们:Java 使用spring ApplicationContext时的性能问题,java,spring,performance,Java,Spring,Performance,我使用Spring创建表单,并在用户单击菜单时自动在布局区域中显示它们: ApplicationContext ac = new AnnotationConfigApplicationContext("package"); AbstractComponent form = (AbstractComponent)ac.getBean(formName); layout.addComponent( form ); 一切都很好,问题是,有几百个表单,所以当用户点击菜单时,加载表单几乎需
ApplicationContext ac = new AnnotationConfigApplicationContext("package");
AbstractComponent form = (AbstractComponent)ac.getBean(formName);
layout.addComponent( form );
一切都很好,问题是,有几百个表单,所以当用户点击菜单时,加载表单几乎需要8秒钟。问题是,如果我理解得很好,bean容器实例化了所有表单
我正在正确使用ApplicationContext
,有没有办法提高性能
提前感谢好的,问题是由新手错误引起的。当用户单击表单时,负责创建ApplicationContext的方法每次都会创建一个新的ApplicationContext。因此,应用单例模式解决了问题: 公共类FormLoader{ 静态应用程序上下文ac=null
public FormLoader() {
if( ac == null ) {
ac = new AnnotationConfigApplicationContext("package");
}
}
public void loadForm( ... ) {
AbstractComponent form = (AbstractComponent)ac.getBean(nombreForm);
layout.addComponent( form );
}
}
在用户进行任何单击之前预加载上下文是否有效?然后在用户单击时,应用程序只需在已实例化的上下文中找到一个表单,而不必实例化整个上下文。感谢dopamint,是的,我应用了单例模式,它解决了性能问题。有关更多信息,请参阅我的答案