jsf 2 spring应用程序记录特定事件

时间:2013-11-27 14:16:48

标签: spring jsf-2 architecture

我有一个JSF2应用程序,它使用Spring进行交易,安全和DI容器 该应用程序有3层:
1. JSF视图+ JSF管理Bean
2.服务类别 3. DAO班级 所以,请求是这样的:
JSF页面 - > JSF MB - >服务类 - > DAO类 - > DB,反之亦然。
我的问题是,有些服务方法在执行业务后必须向DB记录该事件 例如,当某人激活/停用用户时。我想将此操作与用户ID一起记录 所以,我在这里只看到两种方法:(我确定还有更多) 1.在此方法中,我确定登录用户并执行实际记录    - 由于我在这里的缺点,我会看到这个方法不会那么容易测试,因为从SpringSecurity中选择了userId 2.使用SpringAOP。这种方式是非侵入性的,这很酷,但后来我会有一个方面,一个方法,这是不是那么有效。

我想知道你们是否有这样的问题,如果有的话,你们是如何解决的?

1 个答案:

答案 0 :(得分:0)

考虑引入标记注释。我们称之为:@LogEvent。然后注释您希望拦截的每个方法。通过这种方式,您可以使用不与命名约定匹配的建议实现单个方面,而是与@LogEvent的存在相匹配。

类似的东西:

@After("execution(@LogEvent * *.*(..))")