2013-11-23 42 views
11

Google App Engine前端實例是動態縮放的。這意味着App Engine會在負載增加時自動創建新實例,並在不使用時關閉實例。重新加載實例可能會導致用戶的額外延遲。前端實例還有一個60 seconds截止日期來完成給定的請求。如何優化Google App Engine應用程序的Spring Framework使用情況

由於我在我的GAE應用程序中使用Spring MVC and Spring IOC,爲了優化Spring Framework的使用,我已經通過了Best Practices for App Engine Applications

在該鏈接中,我完全與部分混淆。減少或避免使用關係自動裝配。它說automatic wiring可能會顯着縮短應用程序初始化期間解析bean所需的時間,因此他們建議使用自動電路byName而不是使用自動電線byType

所以我的問題是如何autowire byName減少bean解析時間? 。另外我想知道有沒有更好的方法來注入bean?是否有減少應用程序初始化時間的Spring IOC的最佳實踐。

+2

您可以忽略Spring組件掃描(和自動裝配)並定義所有bean及其依賴項。因此解決依賴關係將不再需要時間,我認爲使用Java Config比XML配置更易於維護。 –

回答

4

讓我給一個答覆所有問題的答案

所以我的問題是自動裝配綽號如何降低豆分辨時​​間?

已經apurvc解釋的,特別是如果你使用的界面,或者你使用大量的類繼承春天將要檢查我想知道的類

層次有沒有更好的辦法注入豆類?

  1. 是,不要被自動裝配注入豆,但使用設置或獲取財產,作爲 即可;我使用這個政策。
  2. 避免自動掃描組件
  3. 使用或豆池或工廠重用或構建對象

是否有降低應用 初始化時間爲Spring IOC的最佳做法。

  1. 使用延遲初始化(@Lazy註釋)
  2. 把不依賴豆在XML定義

頂部但你並不真正需要這些解決方案,如果你是JEE開發人員。

7

Autowire「byType」顯然必須使用一些機制(和一些處理)來正確識別bean,而使用「byName」提供直接識別。

拿一羣衆多的貓和狗來比喻一下。要從小組中找到小獵犬,您必須首先識別所有品種,但是當您使用狗的名字時,它更容易並且可以提高識別率。

如果package中包含許多類,Spring將在「context:component-scan」中定義的包內部註釋的類進行掃描,因此建議使用它在應用程序啓動期間需要一段時間autowire byName。

+0

感謝您的解釋。這很有用,你能不能也解釋一下,是否有任何Spring IOC的最佳實踐來減少應用程序的初始化時間,特別是我正在尋找GAE。謝謝。我贊成你的答案,因爲它是有用的:)。 – Jayasagar

+0

我不太瞭解GAE,因爲Spring可以通過使用包含/排除過濾器縮小組件掃描的範圍。這個博客有許多春季最佳實踐http://gordondickens.com/wordpress/2012/07/30/enterprise-spring-framework-best-practices-part-3-xml-config/ – apurvc

+0

根據GAE文檔,排除,做沒有多大幫助。 –

相關問題