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

佛山专业的网站建设公司凡科互动游戏修改器

佛山专业的网站建设公司,凡科互动游戏修改器,wordpress百度自动,开通公司网站怎么做分录你是否曾经遇到过在SpringBoot中Async注解无法正常工作的问题#xff1f;今天#xff0c;我们用函数式接口来解决这个问题。 一、什么是函数式接口#xff1f; 函数式接口#xff08;Functional Interface#xff09;是 Java 8 中引入的一个概念#xff0c;是指只包含一…你是否曾经遇到过在SpringBoot中Async注解无法正常工作的问题今天我们用函数式接口来解决这个问题。 一、什么是函数式接口 函数式接口Functional Interface是 Java 8 中引入的一个概念是指只包含一个抽象方法的接口。这种接口的设计简化了代码提高了代码的可读性和可维护性。通过函数式接口我们可以将一段代码传递给其他方法进行调用。可以通过Lambda表达式来创建函数式接口的对象。 二、函数式接口进行异步调用 之前有文章介绍了使用CompletableFuture进行异步编程但有时候我们只需要一种更简洁的方法。 在SpringBoot中我们经常使用Async注解来进行异步调用。然而有些情况Async注解会失效如静态方法、调用方和被调方在同一个类中。此时我们可以使用函数式接口来解决这个问题。 首先定义一个函数式接口 FunctionalInterface public interface AsyncInvoker {void exec(); } 函数式接口里面的抽象方法名称随意如exec()、run()等但一个函数式接口只允许定义一个方法否则IDE会提示错误。 然后通过一个简单的示例了解函数式接口的基本使用 public static void main(String[] args) {AsyncInvoker asyncInvoker  new AsyncInvoker() {Overridepublic void exec()System.out.println(asyncInvoker exec);}};asyncInvoker.exec(); } 上述代码通过匿名内部类的形式创建一个接口实例并且在匿名内部类中直接完成exec()方法的实现然后调用函数接口。 我们的目标是要实现异步调用。因此我们将函数式接口及其调用封装成组件在调用方法上使用Async注解以实现异步 Component public class AsyncUtil {FunctionalInterfacepublic interface Invoker {void exec();}Async(asyncExecutor)public void invoke(Invoker invoker) {invoker.exec();} } 如果希望在异步调用中使用Spring事务可以在上述组件中添加一个带Transactional注解的方法用于有事务的异步调用 Transactional Async(asyncExecutor) public void transInvoke(Invoker invoker) {invoker.exec(); } 最后别忘了创建一个异步调用线程池 Bean(asyncExecutor) public TaskExecutor executor() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor();executor.setCorePoolSize(corePoolSize); //核心线程数executor.setMaxPoolSize(maxPoolSize); //最大线程数executor.setQueueCapacity(queueCapacity); //队列大小executor.setKeepAliveSeconds(keepAliveSeconds); //线程最大空闲时间executor.setThreadNamePrefix(threadNamePrefix); //新创建的线程名称的前缀executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());return executor; } 在需要进行异步调用的业务组件中我们只需注入前面创建的组件AsyncUtil然后就可以轻松地对同一个类中的方法进行异步调用。这是通过Lambda表达式来实现的它替换了前面案例中的匿名内部类使代码更加简洁。Lambda表达式实际上就是一个匿名函数它的引入让 Java 8 的代码更加优雅。以下是一个示例 asyncUtil.invoke(() - {// 这是一段异步逻辑System.out.println(asyncUtil invoke); }); 三、总结 函数式接口是 Java 8 中引入的一个亮点它可以帮助我们简化代码。不妨尝试一下函数式接口让你的代码变得更加优雅
http://www.zqtcl.cn/news/399782/

相关文章:

  • 国外做的好看的网站设计网络营销推广方案怎么做
  • 网站建站业务wordpress网站域名地址
  • 烟台网站制作这做菠菜网站
  • 网站建设vr百度站长
  • 织梦网站广告代码如何写网页设计你若安好便是晴天作业
  • 网站建设 上海wordpress 知更鸟 公告
  • 建小说网站需要多少钱罗湖区住房和建设网站
  • 湖南专业网站建设服务做网站的底图尺寸多大
  • 山东省住房与建设厅网站首页有名的wordpress主题商
  • 常州市金坛区网站建设毕业设计代做淘宝好还是网站好
  • 品牌网站建设营销型网站设计网站整合方案
  • 网站开发设计师网站代理什么意思
  • 网站层级关系邯郸品牌商标vi设计策划公司
  • 网站开发产品需求说明小网站代码
  • 苏州网站推广排名网站建设方案范文8篇
  • 自己做考试题目网站广州番禺区美食攻略
  • 广州做网站如何如何制作一个网页
  • 网站定制开发收费标准是多少网站代码优化方案
  • 制作卡牌的网站深圳正规煤气公司
  • 手表网站哪家好网站用图片
  • 群辉nas 做网站wordpress linux 中文
  • 平面设计素材网站排名巩义网站建设方案表
  • 延庆网站制作搜索引擎优化的基础是什么
  • 管理手机网站商城网站备案流程
  • 怀化买房网站网站广告js代码添加
  • 做网站 帮别人卖服务器wordpress主题多页面
  • 代理游戏网站潍坊市建设工程管理处网站
  • 大同推广型网站建设网站规划建设与管理维护第二版答案
  • 做网站需要代码吗户外媒体网站建设免费
  • 做什么网站国外做图标网站