<bean id="user" class="com.test.service.beans.User" scope="session">
<aop:scoped-proxy/>
</bean>
<bean id="userFacade" class="com.test.service.facade.UserFacadeImpl" init-method="init">
<property name="currentUser" ref="user"/>
</bean>
这就是我在当前用户中设置内容的方式(认为它将存储在会话中)
user = userFacade.getUser(userNameorEmail);
userFacade.setCurrentUser(user);
我得到了会话bean的内容 -
User user = userFacade.getCurrentUser();
问题是我将用户视为空
答案 0 :(得分:2)
这不是它的工作方式。如果你想在会话中存储某些喜欢(它更像是JEE5 / 6中的会话Bean),你必须将它存储在{{1}的字段中}}。 (您可以将此类重命名为UserSession,以使其更清晰。)
简单的例子,使其更清晰:
com.test.service.beans.User
<强>加强>
杰瑞问:我的问题是如何更好地设计它?我需要一种方法来检索当前的用户对象 - 所以我在会话范围内创建一个名为SessionObjectBean的bean,我将为currentUser设置getter和setter。这会是一个好的设计吗? 2.此外,currentUser是否也应该在会话范围内? 3.我可以在SessionObjectBean中存储Order之类的其他对象吗?
答案 1 :(得分:0)
这不是会话bean的工作方式。会话bean不是存储在会话中的bean,它(有效地)是一个bean,其状态存储在会话中。
换句话说,如果您的bean userFacade
具有属性currentUser
,并且您希望该属性的值存储在会话中,则应使userFacade
成为会话 - 豆。然后它的currentUser
属性(以及组成其状态的其他属性)将存储在会话中。
而且,据我所知,User
根本不应该被声明为Spring bean。