java - 如何让遗留的 HttpServlet Spring Web 感知

标签 java spring hibernate spring-mvc servlets

我们有一个遗产HttpServlet类是我们应用程序的支柱。此时,该应用程序中没有任何 Spring 库。我们希望引入 Spring,特别是这样我们可以将 Spring-Data 与 Hibernate 结合使用。

我想知道是否有一种方法可以让这个遗留的 Servlet 具有网络感知能力,这样我们就可以注入(inject)请求和 session 范围。特别是,我们希望能够注入(inject) HttpServletRequest对象放入一些bean中。

我们需要这样做的主要原因之一是我们拥有一个奇怪的 Multi-Tenancy 解决方案。 Hibernate 可以使用AbstractMultiTenantConnectionProvider 的组合来处理 Multi-Tenancy 。和一个 CurrentTenantIdentifierResolver当使用 Spring-JPA 的存储库时,您将失去对 session 创建的控制。解决这个问题的一种方法是实现 CurrentTenantIdentifierResolver由于我们的租户标识符部分由请求中传入的内容决定,因此有必要将请求注入(inject)到我们的 CurrentTenantIdentifierResolver 中。实现。

此外,如果能够让 Spring 参与进来,因为它可以在遗留应用程序中提供所有其他好处,那就太好了。

您知道我们如何实现这一目标吗?

最佳答案

您可以定义org.springframework.web.context.ContextLoaderListener在你的 web.xml 中,它将加载你的 spring 应用程序上下文。

然后,在您的 servlet 代码中,您可以使用 WebApplicationContextUtils.getWebApplicationContext(servletContext) 访问上下文。辅助方法。

在这里查看 Spring 文档: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#web-integration-common

关于java - 如何让遗留的 HttpServlet Spring Web 感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35047434/

相关文章:

java - 微软outlook认证oAuth2.0

java - Spring Boot 进度报告

java - POJO Web服务应用程序可以在没有Spring框架的Spring应用程序中运行吗

java - 具有富客户端框架的 Spring MVC

hibernate - Spring JPA Criteria Query group by with to_char 函数

java - Wicket 口:DateTextField 设置

java - 有没有不像Eclipse那么复杂的Java IDE?

java - 新的 intellij/maven Web 应用程序,关于服务、dao、公共(public)库等分离模块的建议

java - Cassandra 集群连接中的多个端点

java - 如何实现具有泛型关系的多态 JPA 实体