[英]How to make legacy HttpServlet Spring web aware
我們有一個遺留的HttpServlet
類,它是我們應用程序的基礎。 目前,該應用程序中沒有任何Spring庫。 我們希望引入Spring,尤其是可以將Spring-Data與Hibernate結合使用。
我想知道是否有一種方法可以使這種舊式Servlet成為網絡感知,以便我們可以注入Request和Session范圍。 特別是,我們希望能夠將HttpServletRequest
對象注入到一些bean中。
我們需要執行此操作的主要原因之一是我們已經有了一個奇怪的多租戶解決方案。 Hibernate可以結合使用AbstractMultiTenantConnectionProvider
和CurrentTenantIdentifierResolver
來處理多租戶。使用Spring-JPA的存儲庫時,您將失去對會話創建的控制。 解決此問題的一種方法是實現CurrentTenantIdentifierResolver
因為我們的租戶標識符部分由請求中附帶的內容確定,因此有必要將請求注入到CurrentTenantIdentifierResolver
實現中。
同樣,讓Spring參與它在遺留應用程序中可以提供的所有其他好處也將是一件很棒的事。
您知道我們如何做到這一點嗎?
您可以在web.xml中定義org.springframework.web.context.ContextLoaderListener
,這將加載您的spring應用程序上下文。
然后,在Servlet代碼中,使用WebApplicationContextUtils.getWebApplicationContext(servletContext)
幫助器方法訪問上下文。
在此處查看Spring文檔: http : //docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#web-integration-common
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.