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

spring源码中的,函数式接口,注解@FunctionalInterface

调用方
/org/springframework/beans/factory/support/AbstractBeanFactory.java:333sharedInstance = getSingleton(beanName, () -> {try {return createBean(beanName, mbd, args);}catch (BeansException ex) {// Explicitly remove instance from singleton cache: It might have been put there// eagerly by the creation process, to allow for circular reference resolution.// Also remove any beans that received a temporary reference to the bean.destroySingleton(beanName);throw ex;}});

函数式接口

@FunctionalInterface
public interface ObjectFactory<T> {/*** Return an instance (possibly shared or independent)* of the object managed by this factory.* @return the resulting instance* @throws BeansException in case of creation errors*/T getObject() throws BeansException;}

查看代码时的一点注意事项

通过ObjectFactory#getObject方法的实现是找不到具体的执行代码的,

只能通过方法DefaultSingletonBeanRegistry#getSingleton的调用来源去找具体的执行代码

个人的一点理解:

通过函数式编程,我们可以在不传递参数的前提下完成方法的回调

使得代码更加整洁

这里有函数式接口的一些介绍

Java特性函数式接口注解@FunctionalInterface浅析-CSDN博客

http://www.lryc.cn/news/467165.html

相关文章:

  • 分布式系统中的Session共享:实现跨服务器的用户登录信息同步
  • 【LeetCode每日一题】——1588.所有奇数长度子数组的和
  • 自定义多级联动选择器指南(uni-app)
  • RHCE笔记-SSH服务
  • java实现文件分片上传并且断点续传
  • leetcode hot100 之【LeetCode 15. 三数之和】 java实现
  • mysql学习教程,从入门到精通,sql序列使用(45)
  • Java 中的异常处理、常见异常、如何自定义异常类、Checked 和 Unchecked 异常的区别、如何处理数据库事务中的异常
  • 6.1 特征值介绍
  • Vue01
  • MySQL - Navicat自动备份MySQL数据
  • 系统分析师20:【案例特训专题3】系统设计与运维
  • Linux 局域网中使用NTP配置时间服务
  • Shiro会话管理和加密
  • GPON、XG-PON和XGS-PON的区别
  • Spring 项目返回值枚举类编写技巧
  • 【操作系统】06.进程控制
  • 16天自制CppServer-day02
  • 时空智友企业流程化管控系统uploadStudioFile接口存在任意文件上传漏洞
  • Linux 中文件的权限说明
  • MySql数据库中数据类型
  • Godot中的信号
  • vba学习系列(8)--指定列单元格时间按时间段计数
  • 大型企业软件开发是什么样子的? - Web Dev Cody
  • 【stm32】DMA的介绍与使用
  • 哈希表的魔力
  • 《YOLO 目标检测》—— YOLO v3 详细介绍
  • WNN 多模态整合 | Seurat 单细胞多组学整合流程
  • 【Linux】磁盘文件系统(inode)、软硬链接
  • 网安加·百家讲坛 | 徐一丁:金融机构网络安全合规浅析