【问题标题】:Inject HTTPServletRequest into a request scoped bean将 HTTPServletRequest 注入请求范围的 bean
【发布时间】:2015-08-16 20:16:41
【问题描述】:

我有一个注入单例 bean 的 REST API 网络服务。这个 bean 需要知道 HTTPServletRequest。所以我创建了另一个名为 RequestServiceImpl 的 bean,其中注入了 HTTPServlerRequest。

public class RequestServiceImpl implements RequestService
{
    @Autowired
    private HttpServletRequest request;

}

web-context 包含 bean 定义为

<bean id="requestService" class="com.RequestServiceImpl" scope="request">
     <aop:scoped-proxy/>
</bean>

这个 requestService 被注入到另一个单例 bean 中。我确实看到 requestservice bean 被正确注入,但 HTTPServletRequest 对象始终为空。我不确定我哪里出错了

【问题讨论】:

    标签: spring dependency-injection


    【解决方案1】:

    HTTPServletRequest 是一个接口。你不能有接口的实例。 您可以注入实现HTTPServletRequest 的类,即HttpServletRequestWrapper。如果你愿意,你也可以有你的参考实现。

    此答案将进一步帮助您.. Spring Dependency injection for interfaces

    【讨论】:

    • 不确定我明白你的意思。您的意思是将请求作为@Autowired 私有HttpServletRequestWrapper 请求注入;
    • 刚刚试过。它没有用。请求仍然为空。任何建议
    • 请提供更多代码。例如。在哪个类中你需要 HttpServletRequest、Controller、Spring 配置文件等。同时请检查以下问题的答案,看看是否有帮助,stackoverflow.com/questions/3320674/…
    猜你喜欢
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2013-08-26
    • 1970-01-01
    相关资源
    最近更新 更多