用Spring实现3层结构,业务逻辑层应该怎么取得类似于身份角色的信息(在线等...)

因为在业务对象中,要有细粒度的就是和用户实例相关的权限控制,这样就需要获得当前用户的信息。
用户的认证信息在action中取得后,应该怎么传递给Business层的对象呢?现在用Spring各个层次之间的结构都很清楚了,但是这种和session相关的信息,action层和business层应该怎么传递还没想清楚,请大家指点,谢谢。

session相关的信息是和生存周期相关,Spring目前没有整入生存周期,而Picocontainer则比较强,它的scope有Application、Session和request三种。

实际上,这也是有状态的支持,因为Spring宣称自己侵入性很少,它对有状态基本采取无为的方式,所以Spring实际相当于EJB中的无状态Session Bean。

对于你种情况,只有采取Web编程的通常session解决办法,action和session打交道,然后再和business打交道。

谢谢

我现在是在Action中处理session相关的信息,但是business对象有的也需要这种信息,比如当前用户的角色或者身份,那Action应该怎么传递给business对象呢?

可以用threadlocal,把用户的信息放到一个threadlocal变量里,然后包装一下(比如包装成factorybean),由spring管理,注入到业务组件里,业务组件从这个对象里面取就可以了。