大家好。现在,在我的 Web 应用程序中,我使用了很多列表,这些列表必须是我的应用程序的 sessionAttributes。所有这些都存储在一个 Controller 中:
@Controller
@SessionAttributes({"institutionAttributes", "institutionTypeAttributes", "formDateAttributes",
"formDescriptionAttributes", "deleteAttributesDescription", "deleteAttributesInstitution", "deleteAttributesDate"})
public class MainController {
List<InstitutionInForm> listOfInstitutionsAttributes = new ArrayList<InstitutionInForm>();
List<InstitutionTypeInForm> listOfInstitutionTypesAttributes = new ArrayList<InstitutionTypeInForm>();
List<FormDate> listOfFormDateAttributes = new ArrayList<FormDate>();
List<FormDescription> listOfFormDescriptionsAttributes = new ArrayList<FormDescription>();
List<FormDescription> listOfFormDescriptionsDeleteAttributes = new ArrayList<FormDescription>();
List<InstitutionInForm> listOfInstitutionDeleteAttributes = new ArrayList<InstitutionInForm>();
List<FormDate> listOfDatesDeleteAttributes = new ArrayList<FormDate>();
//other methods omitted
每个列表都将以初始值 10 进行初始化,并且也需要一些内存。 我决定通过分离 Controller 来分离它们。
所以,我问它如何在启动我的应用程序时初始化 Controller ,或者当 DispatcherServlet 收到用户的请求时,在使用所有列表初始化它们后找到合适的 Controller 。???
如何防止初始化目前不需要的 Controller 和列表等?
谢谢开发者。良好的高效编码日。
最佳答案
您可以使用@Lazy
来防止 Controller bean的急切加载/初始化
一旦第一个请求到来,它将被实例化。
@Lazy
@Controller
public class MainController { ...}
关于java - Spring MVC 是否在启动时初始化所有 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18096860/