【发布时间】:2019-08-08 02:22:36
【问题描述】:
在启用@Autowrid 后,使用 Spring 4 的 Maven 项目大约:800 ManegedBeans Spring、900 Services、1000 @Component 和 1000 @Repository,启动应用程序将使用 OutOfMemoryError。
我在 Tomcat 和 Wildfly 中增加了参数-Xms1024m -Xmx4g,在应用程序中我在applicationContext.xml 中添加了default-lazy-init = "false" 参数,并且应用程序正在以很高的成本启动。我想知道删除是否有任何优势
@Autowired
private AnyService anyService;
来自所有类并使用
public void execute() {
AnyService anyService = (AnyService)applicationContext.getBean(AnyService.class);
anyService.execute();
}
在方法中。 使用局部变量而不是实例可以优化启动吗?给GC带来一些好处?调用 applicationContext.getBean(AnyService.class) 可能会降低方法的性能?
【问题讨论】:
标签: java spring maven out-of-memory wildfly