【发布时间】:2016-09-21 16:12:48
【问题描述】:
我有一个包含以下内容的模块:
@Configuration
public class UserHolder {
@Bean
@RequestScope
public IUser getUser() {
return (IUser)SecurityContextHolder.getContext().getAuthentication();
}
}
IUser 是一个接口,它适用于所有使用此 bean 的 java-config 模块。 @Autowired IUser user
但是,我们有一个带有 xml-config 的旧项目。在那里,bean 在部署时初始化(当然是 null),但是没有代理可以在请求时获取正确的用户。
我现在写的(显然是不正确的):
<bean class="...UserHolder" scope="request">
<aop:scoped-proxy/>
</bean>
我需要在 XML 中的 UserHolder: getUser 中定义 bean。但是这会返回一个接口,所以我不能在那里定义类......
<bean class="...UserHolder"></bean>
<bean class"...IUser" scope="request"> <!-- Interface can't be inserted here -->
<aop:scoped-proxy/>
</bean>
定义 UserHolder 的模块的 Spring 版本是:
- 春天:4.2.6.RELEASE
- spring-security: 4.1.0.RELEASE
带有 xml-config 且使用 UserHolder 模块的模块的 Spring 版本是:
- 春天:3.2.15.RELEASE
- spring-security:3.2.9.RELEASE
任何帮助将不胜感激!
谢谢!
【问题讨论】:
标签: spring autowired spring-bean xml-configuration requestscope