Spring mvc 如何在控制器中访问请求范围的bean?

Spring mvc 如何在控制器中访问请求范围的bean?,spring-mvc,Spring Mvc,我试图理解请求范围的bean。假设我有一个控制器,我有一个使用SpringConfigXML实例化的请求范围bean <bean id="loginAction" class="com.foo.LoginAction" scope="request"/> 我是否需要将其添加为控制器中的依赖项来访问它,或者我可以直接从请求对象Do request.getAttribute(“loginAction”)访问它 我只是想知道如何访问这个请求范围的bean 谢谢。在本例中使用@Auto

我试图理解请求范围的bean。假设我有一个控制器,我有一个使用SpringConfigXML实例化的请求范围bean

<bean id="loginAction" class="com.foo.LoginAction" scope="request"/>


我是否需要将其添加为控制器中的依赖项来访问它,或者我可以直接从请求对象Do request.getAttribute(“loginAction”)访问它

我只是想知道如何访问这个请求范围的bean


谢谢。

在本例中使用
@Autowired
注释

@Autowired
private LoginAction loginAction;
然后为这个bean添加包作为自动连接的候选:

<context:annotation-config />
<context:component-scan base-package="com.foo"></context:component-scan>


不要忘了将此类标记为
@组件
@服务

对于这种情况,请使用
@Autowired
注释

@Autowired
private LoginAction loginAction;
然后为这个bean添加包作为自动连接的候选:

<context:annotation-config />
<context:component-scan base-package="com.foo"></context:component-scan>


别忘了将此类标记为
@Component
@Service

“我需要将其添加为控制器中的依赖项才能访问它,还是可以直接从执行请求的请求对象访问它。getAttribute(“loginAction”)”在询问之前,您当然可以抽出十分钟亲自尝试一下这个方法?您必须使用
aop:scoped proxy
@ScopedProxy
从spring reference中检查这个问题“我是否需要将它添加为控制器中的依赖项来访问它,或者我可以直接从执行请求的请求对象访问它。getAttribute(“loginAction”)“当然,在提问之前,你可以抽出十分钟来亲自尝试一下吗?你必须使用
aop:scoped proxy
@ScopedProxy
从spring refresence中检查这一点我理解你所说的,我同意这个想法,但为什么bean的名称必须更改?我认为使用LoginAction进行自动布线没有问题。@danny.lesnik我相信你的意思是说使用LoginAction而不是RequestScopeBean:-)当然。我只是在脑子里写了这段代码,我根据你的问题修改了它,我只是想展示bean自动连接的原理,并使用了我的自定义名称:)好吧,如果他的控制器是单例作用域的,那么你的@Autowire/@Inject将无法工作(应用程序启动时,在控制器创建时应自动连接/注入哪个LoginAction实例?)。这可以通过制作LoginAction范围的代理(我不喜欢)或自动连接/注入提供程序(我使用).我理解你说的,我同意这个想法,但是为什么bean的名称必须更改?我认为使用LoginAction进行自动布线没有问题。@danny.lesnik我相信你的意思是说使用LoginAction而不是RequestScopeBean:-)当然。我只是在脑子里写了这段代码,我根据你的问题修改了它,我只是想展示bean自动连接的原理,并使用了我的自定义名称:)好吧,如果他的控制器是单例作用域的,那么你的@Autowire/@Inject将无法工作(应用程序启动时,在控制器创建时应自动连接/注入哪个LoginAction实例?)。这可以通过创建LoginAction范围的代理(我不喜欢)或自动连接/注入提供程序(我使用)来完成。