我有一个包含以下内容的模块:
@Configuration
public class UserHolder {
@Bean
@RequestScope
public IUser getUser() {
return (IUser)SecurityContextHolder.getContext().getAuthentication();
}
}
IUser
是一个接口,这适用于所有使用此 bean 的 java-config 模块。@Autowired IUser user
但是,我们有一个带有 xml-config 的旧项目。在那里,bean 在部署时初始化(当然是空的),但是在请求时没有代理来获取正确的用户。
我现在写的(这显然是不正确的):
<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
- 弹簧安全:4.1.0.RELEASE
使用 UserHolder 模块的带有 xml-config 的模块的 Spring 版本是:
- 春天:3.2.15.RELEASE
- 弹簧安全:3.2.9.RELEASE
任何帮助,将不胜感激!
谢谢!