当前位置: 首页 > news >正文

ps做图下载网站有哪些在线生成签名免费

ps做图下载网站有哪些,在线生成签名免费,wordpress怎么做网站,wordpress get_user_meta如果您需要对所有数据库操作进行自动审核 #xff0c;并且正在使用Hibernate…#xff0c;则应使用Envers或spring data jpa auditing 。 但是#xff0c;如果由于某些原因您不能使用Envers#xff0c;则可以使用休眠事件侦听器和spring事务同步来实现类似的功能。 首先并且正在使用Hibernate…则应使用Envers或spring data jpa auditing 。 但是如果由于某些原因您不能使用Envers则可以使用休眠事件侦听器和spring事务同步来实现类似的功能。 首先从事件监听器开始。 您应该捕获所有插入更新和删除操作。 但是有一点棘手的问题–如果出于某种原因需要刷新会话则无法直接使用传递给事件侦听器的会话执行该逻辑。 以我为例我必须获取一些数据然后休眠开始向我抛出异常“ id为null”。 多个来源确认您不应在事件侦听器中与数据库进行交互。 因此您应该存储事件以供以后处理。 您可以将侦听器注册为spring bean 如下所示 。 Component public class AuditLogEventListenerimplements PostUpdateEventListener, PostInsertEventListener, PostDeleteEventListener {Overridepublic void onPostDelete(PostDeleteEvent event) {AuditedEntity audited event.getEntity().getClass().getAnnotation(AuditedEntity.class);if (audited ! null) {AuditLogServiceData.getHibernateEvents().add(event);}}Overridepublic void onPostInsert(PostInsertEvent event) {AuditedEntity audited event.getEntity().getClass().getAnnotation(AuditedEntity.class);if (audited ! null) {AuditLogServiceData.getHibernateEvents().add(event);}}Overridepublic void onPostUpdate(PostUpdateEvent event) {AuditedEntity audited event.getEntity().getClass().getAnnotation(AuditedEntity.class);if (audited ! null) {AuditLogServiceData.getHibernateEvents().add(event);}}Overridepublic boolean requiresPostCommitHanding(EntityPersister persister) {return true; // Envers sets this to true only if the entity is versioned. So figure out for yourself if thats needed} } 注意AuditedEntity –这是一个自定义标记注释retention runtimetarget type您可以将其放置在实体之上。 老实说我没有完全了解Envers如何进行持久化 但是由于我也可以使用spring因此在AuditLogServiceData类中我决定使用spring /*** {link AuditLogServiceStores} stores here audit log information It records all * changes to the entities in spring transaction synchronizaton resources, which * are in turn stored as {link ThreadLocal} variables for each thread. Each thread * /transaction is using own copy of this data.*/ public class AuditLogServiceData {private static final String HIBERNATE_EVENTS hibernateEvents;SuppressWarnings(unchecked)public static ListObject getHibernateEvents() {if (!TransactionSynchronizationManager.hasResource(HIBERNATE_EVENTS)) {TransactionSynchronizationManager.bindResource(HIBERNATE_EVENTS, new ArrayList());}return (ListObject) TransactionSynchronizationManager.getResource(HIBERNATE_EVENTS);}public static Long getActorId() {return (Long) TransactionSynchronizationManager.getResource(AUDIT_LOG_ACTOR);}public static void setActor(Long value) {if (value ! null) {TransactionSynchronizationManager.bindResource(AUDIT_LOG_ACTOR, value);}} } 除了存储事件之外我们还需要存储执行操作的用户。 为了做到这一点我们需要提供一个方法-参数级注释来指定一个参数。 在我的案例中注释称为AuditLogActor 保留运行时类型参数。 现在剩下的将是处理事件的代码。 我们想在提交当前事务之前执行此操作。 如果提交后事务失败则审计条目插入也将失败。 我们通过一点AOP来做到这一点 Aspect Component class AuditLogStoringAspect extends TransactionSynchronizationAdapter {Autowiredprivate ApplicationContext ctx; Before(execution(* *.*(..)) annotation(transactional))public void registerTransactionSyncrhonization(JoinPoint jp, Transactional transactional) {Logger.log(this).debug(Registering audit log tx callback);TransactionSynchronizationManager.registerSynchronization(this);MethodSignature signature (MethodSignature) jp.getSignature();int paramIdx 0;for (Parameter param : signature.getMethod().getParameters()) {if (param.isAnnotationPresent(AuditLogActor.class)) {AuditLogServiceData.setActor((Long) jp.getArgs()[paramIdx]);}paramIdx ;}}Overridepublic void beforeCommit(boolean readOnly) {Logger.log(this).debug(tx callback invoked. Readonly readOnly);if (readOnly) {return;}for (Object event : AuditLogServiceData.getHibernateEvents()) {// handle events, possibly using instanceof}} 在我的情况下我必须注入其他服务并且spring抱怨相互依赖的bean所以我改用了applicationContext.getBean(FooBean.class) 。 注意确保您的方面被Spring所捕获–通过自动扫描或通过xml / java-config显式注册它。 因此已审核的呼叫将如下所示 Transactional public void saveFoo(FooRequest request, AuditLogActor Long actorId) { .. } 总结一下休眠事件监听器将所有插入更新和删除事件存储为spring事务同步资源。 一个方面用spring注册一个事务“回调”在提交每个事务之前立即调用它。 在那里处理所有事件并插入相应的审核日志条目。 这是非常基本的审核日志可能在收集处理方面有问题并且当然不能涵盖所有用例。 但这比手动审核日志处理要好得多并且在许多系统中审核日志是强制性功能。 翻译自: https://www.javacodegeeks.com/2016/07/custom-audit-log-spring-hibernate.html
http://www.sadfv.cn/news/374302/

相关文章:

  • 国家企业信息查询网站网站建设模块怎么使用
  • 网站开发与应用专业就业方向wordpress最新教程
  • 欧美网站风格内部网站建设
  • 微网站的链接怎么做的网站开发与设计静态网页源代码
  • 网站建设网站维护设计师经常上的网站
  • 阿里云模板建站教程婚纱官网
  • dw网站制作怎么做滑动的图片个人网站可以做淘宝店铺名
  • 深圳H5网站开发网站建设工期时间表
  • 5G网站建设要多少个网络营销管理
  • 中国建设银行太原招聘信息网站网站设计收费明细表
  • 商城网站定制怎么做苏州网站建设优化公司
  • 做蛋糕有哪些网站注册公司地址怎么弄
  • 网站动画效果用什么程序做的wordpress中文采集
  • 微网站开发企业选择西樵乐从网站建设
  • 网站建设销售好做嘛网站浮动窗口代码
  • 工程建设标准网官方网站手机上做网站的软件
  • 迅速提高网站排名协会网站改版建议
  • 企业网站建设的研究开发方法及技术路线wordpress如何引入layui路径
  • 网站调用视频社保网站上做减员一直不审核
  • 做网站订房网站app和网站开发哪个难
  • 上海网站建设lv cnhtml可以做网站吗
  • 学习网站建设课程天元建设集团有限公司企查查
  • 网站建设团队管理模板雄安 网站建设
  • 在虚拟机中如何做二级域名网站什么都可以看的浏览器
  • 外贸建站哪好郑州网站制作汉狮
  • 网站建设创作思路怎么写佛山网站建设的市场
  • 网站建设找美橙互联2022年国内重要新闻
  • 微网站下载资料怎么做WordPress怎么文章分类
  • 网站如何报备百度云服务器做php网站
  • 吴江企业建设网站顺口大气三个字公司名字