java - Spring MVC 是否在启动时初始化所有 Controller ?

标签 java spring spring-mvc collections controllers

大家好。现在,在我的 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/

相关文章:

java - (ORMLite - android) 直接设置外键字段

java - 在正则表达式中重用子模式

java - 使用 Spring JdbcTemplate 获取 List<String>

Spring Security 配置 : HTTP 403 error

java - Spring和Spring MVC框架有什么区别

java - Controller 中所有方法的 Spring AOP 切入点

java - 使用 count 方法并 for 每次循环来计算数组中元素的数量

java - 拒绝访问?错误的用户/密码

java - Hibernate session.createSQLQuery

java - 从用户主目录导入资源