Spring XML-config 中方法的 RequestScope
Spring RequestScope of method in XML-config
我有一个包含以下内容的模块:
@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>
我需要在 UserHolder:getUser 中定义 bean XML。但是这个 returns 是一个接口,所以我不能在那里定义 class ...
<bean class="...UserHolder"></bean>
<bean class"...IUser" scope="request"> <!-- Interface can't be inserted here -->
<aop:scoped-proxy/>
</bean>
Spring 定义 UserHolder 的模块的版本是:
- spring: 4.2.6.RELEASE
- spring-安全性:4.1.0.RELEASE
Spring 具有 xml-config 使用 UserHolder 模块的模块的版本是:
- spring: 3.2.15.RELEASE
- spring-安全性:3.2.9.RELEASE
如有任何帮助,我们将不胜感激!
谢谢!
我设法用 factory-beans 修复了它:
<bean id="userHolder"
class="...UserHolder">
</bean>
<bean id="user"
class="...IUser"
factory-bean="userHolder"
factory-method="getUser"
scope="request"
primary="true">
<aop:scoped-proxy/>
</bean>
我有一个包含以下内容的模块:
@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>
我需要在 UserHolder:getUser 中定义 bean XML。但是这个 returns 是一个接口,所以我不能在那里定义 class ...
<bean class="...UserHolder"></bean>
<bean class"...IUser" scope="request"> <!-- Interface can't be inserted here -->
<aop:scoped-proxy/>
</bean>
Spring 定义 UserHolder 的模块的版本是:
- spring: 4.2.6.RELEASE
- spring-安全性:4.1.0.RELEASE
Spring 具有 xml-config 使用 UserHolder 模块的模块的版本是:
- spring: 3.2.15.RELEASE
- spring-安全性:3.2.9.RELEASE
如有任何帮助,我们将不胜感激!
谢谢!
我设法用 factory-beans 修复了它:
<bean id="userHolder"
class="...UserHolder">
</bean>
<bean id="user"
class="...IUser"
factory-bean="userHolder"
factory-method="getUser"
scope="request"
primary="true">
<aop:scoped-proxy/>
</bean>