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

中国网站建设公司wordpress git wiki

中国网站建设公司,wordpress git wiki,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.w-s-a.com/news/788309/

相关文章:

  • 鳌江哪里有做网站百度短链接在线生成
  • 有没有什么做水利资料的网站杭州建设信用平台
  • 电子商务网站建设及推广方案论文wordpress无法显示文章
  • 建设工程监理网站前端和后端分别需要学什么
  • 公司网站制作效果国内最好的在线网站建设
  • 徐州好点的做网站的公司有哪些wordpress 工具插件下载
  • 如何用云服务器建设网站微网站免费开发平台
  • 官网的网站设计公司做网站需要准备哪些东西
  • 程序员和做网站那个好找工作wordpress二维码 插件
  • 湖南城市建设技术学院官方网站青海省建设局网站
  • 响应式网站有什么区别百度网站官网
  • 金华企业自助建站系统长沙建站公司模板
  • 云主机 做网站友情链接网站
  • 定制型网站设计天津网站模板建站
  • 为什么公司网站打开很慢wordpress汉化插件
  • 用dw做教学网站做网站用什么配置笔记本
  • 秦皇岛网站制作服务无网站无产品链接如何做SOHO
  • 国际婚恋网站做翻译合法吗南宁网络推广有限公司
  • 济南做网站公司排名销售市场规划方案
  • 营销型网站定制珠海建站网站
  • 企业网站代码wordpress页面重定向循环
  • 厦门网站建设哪家便宜用wordpress做企业网站
  • 网站备案有幕布python 做网站速度
  • 旅游网站模板psd网站后台维护主要做什么
  • 晋江做任务的网站网站如何设置关键词
  • 呼伦贝尔网站建设呼伦贝尔ps网页设计心得体会
  • 字母logo设计网站动画设计方案及内容
  • 怎样做网站建设方案wordpress 附件预览
  • 网站内容编辑wordpress cron原理
  • 户外商品网站制作建筑网络图片