如何将字符串MVC会话Scoped Bean自动装入RestEasy客户端拦截器?

时间:2013-06-24 16:39:34

标签: java spring spring-mvc jax-rs resteasy

我正在使用基于Spring MVC的前端使用RestEasy创建的rest api。

正在开发两个WAR项目。

  1. RestEasy +基于Spring IOC的REST API
  2. Spring MVC + Spring IOC +基于RestEasy Client Proxy的前端。
  3. 我正在使用RestEasy客户端代理来调用其余服务。 JAX-RS契约接口在RestEasy API端和Spring MVC应用程序中共享。

    在基于Spring MVC + Spring IOC + RestEasy Client Proxy的项目中, 我正在尝试将会话范围的bean自动装配到RestEasy ClinetInterceptor中,该插件在Spring MVC控制器中定义。

    我使用过注释。但我仍然在ClientInterceptor中的Autowired Session Scoped bean上获得NPE ..

    如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

要在单例bean / prototype scoped bean中注入会话范围的bean,会使用作用域代理声明会话范围的bean作为Spring注入bean代理作为bean的占位符。

会话范围bean可以通过

声明为范围代理

在XML声明中,

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

如果您使用的是注释,

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

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