我正在使用基于Spring MVC的前端使用RestEasy创建的rest api。
正在开发两个WAR项目。
我正在使用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 ..
如何解决这个问题?
答案 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)
代理模式提供有关要生成的代理类型的信息,基于接口/基于类。