在Spring Boot中,有一些关于模式的罐子 spring-boot-starter.所有这些罐子都不包含任何包装.它们的用途是什么?
在Maven POM中,添加了以下依赖项:
哪些Spring Boot罐子我真的需要在这些罐子里使用这些功能?我的项目没有任何依赖管理.我的项目是一个使用Spring Security的Spring MVC应用程序.
我想问你如何(或IF)可以减少Spring框架的RAM占用空间.
我创建了一个简单的helloworld应用程序来演示这个问题.只有两个类和context.xml文件:
Main - 使用main方法的类Test - 用于模拟某些"工作"的类(无限循环中的printig Hello)context.xml 只包含这个:
<context:component-scan base-package="mypackage" />
Run Code Online (Sandbox Code Playgroud)
测试类只包含调用的metod init,在构造后调用:
@Component
public class Test{
@PostConstruct
public void init() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
while (true) {
System.out.println("Hello " + Thread.currentThread().getName());
Thread.sleep(500);
}
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
});
t.start();
}
}
Run Code Online (Sandbox Code Playgroud)
我准备了两个场景,在这两个场景中,main方法只包含一行.
在第一个场景中,main方法执行此操作:(new Test()).init();
App在没有Spring的情况下工作,仅消耗aprox.8MB的RAM.
在第二个场景中,main方法包含以下内容:new ClassPathXmlApplicationContext(new String[]{"spring/context.xml"});
因此,应用程序通过Spring容器初始化并消耗aprox.45MB内存!
有没有办法如何减少(在最好的情况下完全摆脱)这个额外的内存?到目前为止,我无法找到任何合适的解决方案.
我不介意启动时是否有额外的内存消耗 - 这很好,但在那之后,我需要我们的应用程序来减少它.
(这个问题背后的故事有点复杂,但这对我来说现在是核心问题.)
谢谢