2011-06-01 148 views
1

我对Spring会话bean有疑问。让我试着解释我需要什么以及我做了什么。我需要在session变量(在这种情况下是一个Bean)上存储user_id,所以当我需要在db上创建一些记录时,我可以跟踪谁做了什么。春季会话bean:用值初始化

要做到这一点,对于第一,我创​​建了一个豆,第二,我修改了那样的我的应用程序上下文:

<bean id="UserInfo" class="net.agdev.session.UserInfo" scope="session"> 
    <aop:scoped-proxy/> 
</bean> 

我阅读,使用此:

ContextLoader.getCurrentWebApplicationContext().getBean("UserInfo"); 

是ppossible来访问bean,但目前还不清楚如何填充该bean ..

我尝试阅读Spring文档如何初始化bean以及如何在我的类控制器上调用,但我di找不到任何东西。

你可以建议在哪里可以找到一个例子或教程来做到这一点?

非常感谢!

Andrea

回答

1

你的意思是如何获得user_id到会话bean?根据您的应用程序,这可能应该在用户“登录”之后发生。也就是说,如果您有例如登录Webflow或控制器,请在该Webflow或控制器中的会话Bean中设置user_id。

所以,如果我理解您的上下文正确这个只有很少做,Spring本身并大多与您的应用程序:-)

如果您想对其他服务的初始化,例如从操作你的bean的其他方面你可以在bean定义上设置一个init方法,详细说明如下:here

+0

我发现非常有帮助的链接http://claymitchell.net/2008/02/11/spring-framework-annotation-sessionattribute-can-be-confusing/和我解决了使用HttpSession对象。 TNX! – 2011-06-03 16:00:10

1

通过方面编程如AspectJ。你必须设置一些触发器,例如在用户做了一些事情之后,你必须读取你的bean并填充用户执行的操作信息。

您可以使用@annotation来定义触发器,或者您可以通过spring xml文件来完成。我认为你必须使用应用程序上下文bean而不是会话bean。