gpt4 book ai didi

java - Spring HttpRequestHandler 中的请求作用域 bean

转载 作者:太空宇宙 更新时间:2023-11-04 07:58:32 24 4
gpt4 key购买 nike

我已遵循建议here -> How to connect HttpServlet with Spring Application Context in web.xml允许访问 servlet 中的 spring beans。它似乎对于单例 bean 工作得很好,但是我需要在我的 handleRequest() 方法中访问请求范围的 bean。

按原样,请求范围的 bean 无法连接到 HttpRequestHandler,因为它是单例范围的,因此存在范围不匹配的情况。

我尝试将 HttpRequestHandler 设为请求范围的 bean,但这仍然只生成一个 bean。即没有为每个请求注入(inject)一个新实例。我只能假设 org.springframework.web.context.support.HttpRequestHandlerServlet 采用的机制以某种方式不允许每个请求都有一个新的实例。

我的解决方法是直接从handleRequest方法内的应用程序上下文获取bean,例如

日历 localNow = (日历) applicationContext.getBean("now");

但理想情况下,我只想为我注入(inject)请求范围的 bean。

有什么建议吗?

最佳答案

为了将“请求”作用域或“ session ”作用域 bean 注入(inject)到单例 bean 中,请使用 <aop:scoped-proxy/>

例如:

<bean id="singletonClass" class="com.app.SingletonClass">
<property name="requestScopeInstance" ref="requestScopeInstance">
</bean>

<bean id="requestScopeInstance" class="com.app.RequestScopeInstance scope="session">
<aop:scoped-proxy/>
</bean>

希望这能起作用。

关于java - Spring HttpRequestHandler 中的请求作用域 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13225008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com