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

电商网站开发的主流技术ui设计网站成品图片

电商网站开发的主流技术,ui设计网站成品图片,农业电商网站建设pp,微信网站页面设计spring3.0异步介绍 如您可能已经知道的#xff08;例如#xff0c;从我以前的博客文章中 #xff09;#xff0c;不再需要创建一个单独的类来实现带有onApplicationEvent方法的ApplicationListener #xff0c;以便能够对应用程序事件做出响应#xff08;包括来自Spring … spring3.0异步 介绍 如您可能已经知道的例如从我以前的博客文章中 不再需要创建一个单独的类来实现带有onApplicationEvent方法的ApplicationListener 以便能够对应用程序事件做出响应包括来自Spring Framework本身和我们自己的域事件。 从Spring 4.2开始添加了对注释驱动的事件侦听器的支持。 在方法级别使用EventListener就足够了它会在EventListener自动注册相应的ApplicationListener EventListenerpublic void blogAdded(BlogAddedEvent blogAddedEvent) {externalNotificationSender.blogAdded(blogAddedEvent);} 请注意 在事件中使用域对象有明显的缺点在许多情况下也不是最好的主意。 代码示例中的伪域对象用于不引入不必要的复杂性。 交易绑定事件 简单紧凑。 对于“标准”事件一切看起来都很不错但在某些情况下需要在事务提交或回滚之后执行一些操作通常是异步操作。 那是什么 是否可以使用新机制 业务需求 首先是一个小题外话-业务需求。 让我们想象一下超级精美的博客聚合服务。 每次添加新博客时都会生成一个事件。 订阅的用户可以接收SMS或推送通知。 可以在将博客对象计划保存在数据库中之后发布该事件。 但是在提交/刷新失败违反数据库约束ID生成器出现问题等的情况下整个数据库事务都会回滚。 许多愤怒的用户带有不完整的通知将出现在门口…… 技术问题 在现代的事务管理方法中事务是声明式配置的例如使用Transactional批注并且在事务作用域的结尾例如方法的结尾触发提交。 总的来说这非常方便而且出错的可能性要小得多与编程方法相比。 另一方面提交或回滚是在代码外自动完成的因此我们无法以“经典方式”做出React即在调用transaction.commit()之后的下一行中的publish事件。 老学校实施 不可或缺的Tomek Nurkiewicz提出了Spring的一种可能的解决方案也是一种非常优雅的解决方案。 它使用TransactionSynchronizationManager来注册当前线程的事务同步。 例如 EventListenerpublic void blogAddedTransactionalOldSchool(BlogAddedEvent blogAddedEvent) {//Note: *Old school* transaction handling before Spring 4.2 - broken in not transactional contextTransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {Overridepublic void afterCommit() {internalSendBlogAddedNotification(blogAddedEvent);}});} 所传递的代码在Spring事务工作流中的适当位置执行对于这种情况“恰好”在提交之后。 为了提供对非事务上下文中执行的支持例如在不关心事务的集成测试用例中可以将其扩展为以下形式以确保不会因java.lang.IllegalStateException: Transaction synchronization is not active而失败java.lang.IllegalStateException: Transaction synchronization is not active异常 EventListenerpublic void blogAddedTransactionalOldSchool(final BlogAddedEvent blogAddedEvent) {//Note: *Old school* transaction handling before Spring 4.2//if to not fail with java.lang.IllegalStateException: Transaction synchronization is not activeif (TransactionSynchronizationManager.isActualTransactionActive()) {TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {Overridepublic void afterCommit() {internalSendBlogAddedNotification(blogAddedEvent);}});} else {log.warn(No active transaction found. Sending notification immediately.);externalNotificationSender.newBlogTransactionalOldSchool(blogAddedEvent);}} 在缺少活动事务的情况下通过进行此更改可以立即执行提供的代码。 到目前为止一切正常但让我们尝试在Spring 4.2中使用注释驱动的事件侦听器实现相同的目的。 Spring 4.2实施 除了EventListener之外Spring 4.2还提供了另一个注解TransactionalEventListener 。 TransactionalEventListenerpublic void blogAddedTransactional(BlogAddedEvent blogAddedEvent) {externalNotificationSender.newBlogTransactional(blogAddedEvent);} 执行可以绑定到标准事务阶段提交之前/之后回滚之后或完成之后提交或回滚。 默认情况下只有在事件的边界内发布事件时它才会处理事件。 在其他情况下该事件将被丢弃。 为了支持在非事务上下文中的执行可以使用falbackExecution标志。 如果设置为“ true”则如果没有事务在运行则将立即处理事件。 TransactionalEventListener(fallbackExecution true)public void blogAddedTransactional(BlogAddedEvent blogAddedEvent) {externalNotificationSender.newBlogTransactional(blogAddedEvent);}摘要 在Spring 4.2中引入的注释驱动的事件侦听器延续了减少基于SpringBoot的应用程序中样板代码的趋势。 无需手动创建ApplicationListener实现无需直接使用TransactionSynchronizationManager只需一个具有正确配置的注释即可。 硬币的另一面是要找到所有事件侦听器会有些困难尤其是在我们的整体应用程序中有数十个事件侦听器的情况下尽管可以很容易地对其进行分组。 当然新方法只是在给定用例中有用或没有用的一种选择。 尽管如此SpringBoot的另一个魔力泛滥到了我们的系统中。 但是也许抵抗是徒劳的 抵抗是徒劳的吗 资料来源 http : //en.memory-alpha.wikia.com/wiki/Borg_cube 请注意Spring Framework 4.2是Spring Boot 1.3的默认依赖项在编写1.3.0.M5时可用。 另外可以在Gradle / Maven中为Spring Boot 1.2.5手动升级Spring Framework版本–在大多数情况下应该可以使用。 可以从GitHub获得代码示例。 顺便说一句为该博客文章编写示例使我有了使用Spring 4.1中引入的新测试事务管理系统的第一种真正能力过去我仅在Spring培训课程中提到过它。 可能我会尽快写更多有关它的内容。 翻译自: https://www.javacodegeeks.com/2015/10/simpler-handling-of-asynchronous-transaction-bound-events-in-spring-4-2.htmlspring3.0异步
http://wiki.neutronadmin.com/news/98130/

相关文章:

  • 公司网站建设描述温州 建网站的公司 新
  • 长春地区网站建设网站cms相关知识
  • 网站建设与维护的不足wordpress循环分类
  • 网站seo在线诊断分析软件技术主要学什么就业方向
  • 上海高级网站建设浙江省建设厅老网站
  • 潍坊住房与城市建设部网站网站seo快速优化技巧
  • 网站设置gif禁用建设网站企业网银登录
  • 佛山外贸网站制作公司建网站的公司不肯签合同
  • 内部链接网站大全长沙企业网站seo
  • 做企业网站首页尺寸好玩网页游戏大全
  • 专门做灯具海报的网站营销型网站案例展示
  • 无锡公司做网站松原做网站公司
  • 织梦通用seo网站模板计算机网络技术网站开发与设计
  • 百度权重排名高的网站现在允许做网站吗
  • 泊头网站制作西安网站设计建设公司
  • 网站推广怎么优化wordpress和蝉知
  • 个人网站做什么内容好广州新公司注册流程及费用
  • 广州做网站的公做网站dreamwa
  • 制作很好的网站邢台网警
  • 吴江建设银行网站我要在58上面做网站
  • wordpress程序建站百度一级代理商
  • 网站建设设计官网上海家装设计网站
  • 网站开发技术岗位职责app开发定制外包22
  • 数据库在网站建设中的作用手机网站制作流程
  • 网站建设主要内容长沙建站
  • 物流网站建设规划总结西部数码网站管理助手卸载
  • 如何安装织梦做的网站有心学做网站
  • 网站建设制作心得团队网络营销推广外包平台
  • 宝塔做两个网站6西安的网站设计与制作首页
  • 网站建设需要注意的事情电商有什么平台