我在控制器中生成了许多ModelAndView对象(每个网页发送一个),但是我不知道哪种策略可以节省更多的内存,并且性能更好。
这是我的两个选择:
1-在我的控制器中保留一个属性,并在每次重用它:
@Controller
public class MyController{
private ModelAndView mav;
public ModelAndView methodA() {
mav = new ModelAndView(...);
return mav;
}
public ModelAndView methodB() {
mav = new ModelAndView(...);
return mav;
}
...
}
2-为每个方法创建一个对象:
@Controller
public class MyController{
public ModelAndView methodA() {
ModelAndView mav = new ModelAndView(...);
return mav;
}
public ModelAndView methodB() {
ModelAndView mav = new ModelAndView(...);
return mav;
}
...
}
其中之一有什么重要的改进吗?
谢谢
最佳答案
出于并发原因,绝对避免使用#1。您可能具有线程A运行方法1和线程B运行方法2,并且其中一个将在其他对象可以使用其构造的对象之前更改mav对象。