美好的一天人們。現在在我的web應用程序中,我使用了大量的列表,這些列表必須是我的應用程序的sessionAttributes。所有這些都存儲在一個控制器:Spring MVC初始化所有控制器啓動嗎?
@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將從用戶處獲得請求時,在用所有列表初始化它們之後,找到合適的控制器。
如何防止當前不需要初始化控制器和列表等?
謝謝開發人員。良好的生產力編碼日。
你不應該擔心7個空的Arraylists。只要不添加對象,內存消耗就非常低(與完整的Spring應用程序相反)。 *注意:數組(列表)只包含對包含對象的引用,而不包含對象本身*。如果你真的關心10個引用,那麼你可以使用較低的初始大寫初始化數組(但是這有一個缺點,即在添加新對象時,列表需要更頻繁地複製內部數組。) – Ralph
謝謝先生。我有問題。如果List只包含引用,那麼所有對象都存儲在哪裏? –
在堆中的某個地方。 - 但它們只在創建後才存儲在堆中。 (在你的代碼中,你只是創建列表而不是「對象」) – Ralph