加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Envers自定义修订监听器

发布时间:2020-12-15 02:28:11 所属栏目:Java 来源:网络整理
导读:我在Tomcat环境中使用Hibernate Envers.它工作正常.但是我需要能够添加更改要审核的数据的用户的用户名.这可以通过实现您自己的RevisionEntity版本来完成.然后,您还必须实现一个自定义的RevisionListener,它将填充您要审核的额外信息.我需要审核已更改要审核
我在Tomcat环境中使用Hibernate Envers.它工作正常.但是我需要能够添加更改要审核的数据的用户的用户名.这可以通过实现您自己的RevisionEntity版本来完成.然后,您还必须实现一个自定义的RevisionListener,它将填充您要审核的额外信息.我需要审核已更改要审核的数据的用户名.在文档中,它是如何使用Seam执行此操作的示例.在RevisionListener中,他们调用:

Identity identity = (Identity) Component.getInstance("org.jboss.seam.security.identity");

获取用户名.在我的项目中,我们将项目拆分为数据库和Web的单独模块.我需要在我的数据库模块中实现我的custum修订监听器才能获得当前登录的用户名.我无法将RevisionListener移动到Web包,并从数据库模块引入对Web模块的依赖.如何在我的自定义RevisionListener中同时处理多个用户登录的方式获取当前用户名?

最好的解决方案是在大多数容器中工作的解决方案.

解决方法

我可以理解你想要限制模块之间的耦合.我过去使用Spring和JSF做过这个.我在他们自己的项目中有数据访问代码,我的Web项目依赖于数据访问罐.

我在另一个了解Hibernate类和JSF API的项目中编写了监听器.我能够使用JSF API查找登录用户.

这样,Web应用程序依赖于数据和侦听器项目.数据访问项目不需要知道它的使用位置,即使发生审计也是如此.并且侦听器在Web项目中配置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读