我使用Guice,我有一個問題。有一個是Singleton的servlet。在JVM中只有一個此類的實例還是隻有一個Session範圍的實例?併發訪問這個類怎麼樣?Guice Singleton和Servlet
0
A
回答
0
您的servlet資源會發生併發訪問問題。 Servlet容器會很好地處理它,它會在每次請求時產生新的線程,並傳遞該servlet的引用和請求將被處理。
它可以讓你的servlet單線程確認單個內存空間的使用,所以容器將是輕量級的。在Spring中可用的相同概念默認情況下每個bean都是單例。
0
我不知道吉斯,但容器可以確保只有一個的Servlet實例每個JVM存在每個定義的DD,按照規範,除非你的servlet實現了邪惡SingleThreadModel
。容器將爲每個request
產生一個新線程,調用service()
方法。
此外,類和實例變量將不是線程安全的。只有局部變量纔是線程安全的。
0
其實吉斯要求的servlet,它設法是單身:
注:每次的servlet(或過濾器)必須是@Singleton。如果您不能直接註釋該類,則必須使用(Singleton.class)中的bind(..)。(與filter()或servlet()規則分開來綁定它。在任何其他範圍下映射都是錯誤的。這是爲了保持與Servlet規範的一致性。 Guice Servlet不支持已棄用的SingleThreadModel。
你有責任正確處理併發訪問。
相關問題
- 1. Guice和非Singleton Servlets
- 2. AppEngine中的Guice Singleton
- 3. 如何使用Guice的@Singleton?
- 4. Guice和Servlet - 一般理解問題?
- 5. 可以繼承Guice的@Singleton註解嗎?
- 6. Guice在servlet中注入
- 7. 用Google Guice Servlet配置Apache Shiro
- 8. 如何在Jersey 2.0中使用guice-servlet?
- 9. Tomcat WebSocketServlet和Google Guice
- 10. Singleton是否適用於servlet/jsp項目?
- 11. 如何在Guice/Inject/GuiceFilter servlet環境中獲取servlet實例?
- 12. Google Guice:從servlet轉發到servlet時請求參數會丟失
- 13. 如何使用guice-servlet將過濾器映射到servlet?
- 14. 在Guice AbstractModule和Servlet模塊之間共享綁定
- 15. 需要引用AbstractModule中Singleton的Guice依賴關係
- 16. Guice:配置沒有@Singleton的單例或者修改實現
- 17. 製作Guice Injector Singleton以保持一致性
- 18. Google Guice和Servlets
- 19. Ninject和Singleton
- 20. Haskell - singleton和'fromList'
- 21. Ruby Singleton和Shotgun
- 22. IEqualityComparer和singleton
- 23. Singleton和Context
- 24. Singleton和DataSource
- 25. Singleton和HttpApplicationState
- 26. Guice和注射器
- 27. Classloader(和Guice)怪異
- 28. 當使用guice servlet擴展時,是否可以對servlet銷燬做出反應?
- 29. 如何在Guice Servlet中使用servlet-name進行過濾器映射?
- 30. 使用帶有Jetty的Guice Servlet將路徑映射到Servlet而不使用web.xml
我將如何處理併發訪問? – kodmanyagha
這一切都取決於您的應用程序。該框架將允許多個請求同時訪問該servlet。你需要確保你的servlet所做的是安全的。我建議閱讀Brian Goetz的實踐中的_Java Concurrency,以獲得一個好的概述。 – condit