Spring会话bean:使用值初始化

时间:2011-06-01 13:05:08

标签: java spring java-ee

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

要做到这一点,首先,我创建了一个bean,其次,我以这种方式修改了我的应用程序上下文:

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

我用这个读了:

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

是可以访问bean的,但目前还不清楚如何填充该bean ..

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

你能建议在哪里找到一个例子或教程吗?

非常感谢!

安德烈

2 个答案:

答案 0 :(得分:1)

你的意思是如何将user_id放入会话bean?根据您的应用程序,这应该在用户“登录”后立即发生。这意味着,如果您有一个登录Webflow或控制器,请在该Webflow或控制器中的会话bean中设置user_id。

因此,如果我正确理解你的上下文,那么它与Spring本身关系很少,主要与你的应用程序有关: - )

如果您希望从其他服务的操作初始化bean的其他方面,您可以在bean定义上设置一个init-method,详细为here

答案 1 :(得分:1)

通过像AspectJ这样的方面编程。您必须设置一些触发器,例如在用户执行某些操作后您必须读取您的bean并将其填充为用户执行的操作信息。

您可以使用@annotation来定义触发器,也可以使用spring xml文件来执行此操作。我认为你必须使用应用程序上下文bean而不是会话bean。