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

小吃网站建设详情页面设计模板

小吃网站建设,详情页面设计模板,体验营销策略,seo关键词优化最多可以添加几个词介绍 在应用程序内交换事件已成为许多应用程序中必不可少的部分#xff0c;幸运的是#xff0c;Spring为瞬态事件#xff08;*#xff09;提供了完整的基础结构。 最近对事务绑定事件的重构为我提供了一个借口#xff0c;以在实践中检查Spring 4.2中引入的新的注释驱动事件… 介绍 在应用程序内交换事件已成为许多应用程序中必不可少的部分幸运的是Spring为瞬态事件*提供了完整的基础结构。 最近对事务绑定事件的重构为我提供了一个借口以在实践中检查Spring 4.2中引入的新的注释驱动事件监听器。 让我们看看可以得到什么。 *–对于基于Spring的应用程序中的持续事件 Duramen是一个值得一看的解决方案 旧的方式 要获取有关事件Spring事件和自定义域事件的onApplicationEvent 必须创建一个使用onApplicationEvent实现ApplicationListener的组件。 Component class OldWayBlogModifiedEventListener implementsApplicationListenerOldWayBlogModifiedEvent {(...)Overridepublic void onApplicationEvent(OldWayBlogModifiedEvent event) {externalNotificationSender.oldWayBlogModified(event);} } 它可以正常工作但是对于每个事件都必须创建一个新类来生成样板代码。 另外我们的事件必须扩展ApplicationEvent类-Spring中所有应用程序事件的基类。 class OldWayBlogModifiedEvent extends ApplicationEvent {public OldWayBlogModifiedEvent(Blog blog) {super(blog);}public Blog getBlog() {return (Blog)getSource();} } 请注意 在事件中使用域对象有明显的缺点在许多情况下也不是最好的主意。 代码示例中的伪域对象用于不引入不必要的复杂性。 顺便说一句在此示例中 ExternalNotificationSender是类的实例该类向注册用户发送外部通知例如通过电子邮件SMS或Slack。 注释驱动的事件侦听器 从Spring 4.2开始要得到有关新事件的通知它足以在任何带有EventListener注释的Spring组件中注释一个方法。 EventListenerpublic void blogModified(BlogModifiedEvent blogModifiedEvent) {externalNotificationSender.blogModified(blogModifiedEvent);} 在幕后Spring将为事件创建一个ApplicationListener实例该实例的类型来自方法参数。 一类中带注释的方法的数量没有限制-所有相关的事件处理程序都可以分组为一个类。 条件事件处理 为了使EventListener更加有趣可以处理仅满足SpEL编写的给定条件的给定类型的那些事件。 让我们假设以下事件类 public class BlogModifiedEvent {private final Blog blog;private final boolean importantChange;public BlogModifiedEvent(Blog blog) {this(blog, false);}public BlogModifiedEvent(Blog blog, boolean importantChange) {this.blog blog;this.importantChange importantChange;}public Blog getBlog() {return blog;}public boolean isImportantChange() {return importantChange;} } 请注意在实际的应用程序中可能会存在Blog相关事件的层次结构。 另请注意在Groovy中该类要简单得多。 要仅针对重要更改生成事件可以使用condition参数 EventListener(condition #blogModifiedEvent.importantChange)public void blogModifiedSpEL(BlogModifiedEvent blogModifiedEvent) {externalNotificationSender.blogModifiedSpEL(blogModifiedEvent);}宽松的事件类型层次结构 从历史上看 ApplicationEventPublisher仅具有发布在ApplicationEvent之后继承的对象的功能。 从Spring 4.2开始接口已扩展为支持任何对象类型。 在这种情况下对象将包装在PayloadApplicationEvent并通过发送。 //base class with Blog field - no need to extend ApplicationEvent class BaseBlogEvent {}class BlogModifiedEvent extends BaseBlogEvent {}//somewhere in the code ApplicationEventPublisher publisher (...); //injectedpublisher.publishEvent(new BlogModifiedEvent(blog)); //just plain instance of the event 这种变化使发布事件变得更加容易。 但是另一方面如果没有内部责任感例如针对我们所有域事件的标记接口则事件跟踪会变得更加困难尤其是在大型应用程序中。 发布事件以响应 EventListener另一个EventListener是在非无效返回类型的情况下Spring会自动发布返回的事件。 EventListenerpublic BlogModifiedResponseEvent blogModifiedWithResponse(BlogModifiedEvent blogModifiedEvent) {externalNotificationSender.blogModifiedWithResponse(blogModifiedEvent);return new BlogModifiedResponseEvent(blogModifiedEvent.getBlog(), BlogModifiedResponseEvent.Status.OK);}异步事件处理 已更新 。 正如RadekGrębski正确建议的那样 还值得一提的是EventListener可以与Async批注轻松组合以提供异步事件处理。 特定事件侦听器中的代码不会阻止主代码执行也不会阻止其他侦听器进行处理。 Async //Remember to enable asynchronous method execution //in your application with EnableAsyncEventListenerpublic void blogAddedAsync(BlogAddedEvent blogAddedEvent) {externalNotificationSender.blogAdded(blogAddedEvent);} 为了使其正常工作通常只需要使用EnableAsync在Spring上下文/应用程序中启用异步方法执行EnableAsync 。 摘要 Spring 4.2中引入的由注释驱动的事件侦听器继续保持减少基于Spring引导应用程序中样板代码的趋势。 这种新方法看起来很有趣特别是对于具有少量事件且维护开销较低的小型应用程序。 在无处不在的SpringBoot魔术世界中更值得记住的是强大的力量伴随着巨大的责任。 在下一篇博客文章中我将写出如何将新机制也用于简化事务绑定事件的处理。 请注意 Spring Framework 4.2是Spring Boot 1.3的默认依赖项在编写1.3.0.M5时可用。 另外也可以在Gradle / Maven中为Spring Boot 1.2.5手动升级Spring Framework版本–在大多数情况下应该可以使用。 翻译自: https://www.javacodegeeks.com/2015/10/annotation-driven-event-listeners-in-spring-4-2-2.html
http://www.yutouwan.com/news/487047/

相关文章:

  • 公司网站栏目自贡跨省特大虚假广告案
  • 雄安企业网站建设php能用着手机网站开发
  • 诏安县城乡建设局网站关于做电影的网站设计
  • 深圳图派做的网站后台加什么百度一对一解答
  • 宣城网站建设电话泉州那家做网站公司好
  • 六盘水做网站网站关键词挖掘
  • 做一个高端网站新版wordpress增加备案
  • 自己做的网站怎么让别人访问网页设计个人总结800
  • 腾讯云wordpress建站教程六感程序网站建设
  • 有没有专门做京东天猫的人才网站成都学网站建设费用
  • 向网站上传文件怎么做沈阳做网站比较好的公司
  • 网站建设与运营考试万网域名管理网站
  • 海口网站运营托管公司wordpress 8个安全密匙
  • 不花钱可以做网站吗海南论坛论坛网站建设
  • 维护网站的职位叫什么网络营销推广优化
  • 利搜网站排名软件常州想做个企业的网站找谁做
  • 网站设计方法漯河建设网站
  • 网站开发包含什么太原新媒体运营公司
  • 外贸英文网站建设广东网站建设方便
  • 徐州云建站模板国外的wordpress主题
  • iis配置网站无法浏览在线设计图纸
  • 做淘宝图片的网站如何做企业网站的排名
  • 网站域名行业动态枣强网站建设电话
  • 温岭市市住房和城乡建设规划局网站网站开发学习
  • 东莞手机网站建设多少钱百度推广关键词规划师
  • 注册域名网站网站建设最好
  • 17做网店这个网站好不好做我的世界背景图的网站
  • 怎么做刷题网站重庆做网站找谁
  • 做网站用jsp还是j2eewordpress 不显示工具栏
  • 太原深圳建设工程信息网站免费flash网站模板