gpt4 book ai didi

java - 如何将 String MVC session 范围 Bean Autowiring 到 RestEasy 客户端拦截器中?

转载 作者:行者123 更新时间:2023-12-01 18:47:09 26 4
gpt4 key购买 nike

我正在使用基于 Spring MVC 的前端中使用 RestEasy 创建的 REST API。

有两个 WAR 项目正在开发中。

  1. RestEasy + 基于 Spring IOC 的 REST API
  2. 基于 Spring MVC + Spring IOC + RestEasy 客户端代理的前端。

我正在使用 RestEasy 客户端代理来调用其余服务。 JAX-RS 契约接口(interface)在 RestEasy API 端以及 Spring MVC 应用程序中共享。

在基于 Spring MVC + Spring IOC + RestEasy 客户端代理的项目中,我正在尝试将 session 范围 bean Autowiring 到在 Spring MVC Controller 中定义的 RestEasy ClinetInterceptor 中。

我使用了注释。但我仍然在 ClientInterceptor 内的 Autowired Session Scoped bean 上得到 NPE。

如何解决这个问题?

最佳答案

要在单例 bean/原型(prototype)作用域 bean 中注入(inject) session 作用域 bean,应使用作用域代理来声明 session 作用域 bean,作为 Spring 注入(inject) bean 代理作为 bean 的占位符。

session 作用域 bean 可以通过以下方式声明为作用域代理:

在 XML 声明中,

 <bean ... scope="session"> 
<aop:scoped-proxy/>
</bean>

如果您使用注释,

@Scope(value="session",proxyMode= ScopedProxyMode.TARGET_CLASS)

代理模式提供有关生成代理类型(基于接口(interface)/基于类)的信息。

关于java - 如何将 String MVC session 范围 Bean Autowiring 到 RestEasy 客户端拦截器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17280586/

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