美好的一天的人。现在在我的Web应用程序中,我使用了很多列表,这些列表必须是我的应用程序的sessionAttributes。所有这些都存储在一个控制器中:
@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,并且还需要一些内存。 我决定通过分离控制器来分离它们。
所以,我问它是如何在启动我的应用程序时初始化控制器,或者当DispatcherServlet将从用户获得请求时,在用所有列表初始化它们之后找到一个合适的控制器。???
如何防止控制器和列表等当前不需要初始化?
谢谢开发人员。良好的生产编码日。
答案 0 :(得分:3)
您可以使用@Lazy
来阻止控制器bean的加载/初始化
一旦第一个请求到来,这将被实例化。
@Lazy
@Controller
public class MainController { ...}