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

SpringBoot接口开发总结

遇到的陌生函数

  1. xxxMapper.selectList(): 使用mybatis获取数据库某几行数据。
    • new QueryWrapper<>().lambda(): 创建sql查询对象
    • isNull(实体类::getXXX): 判断某个字段是否为空
    • or() / and(): 链式连接多个查询条件
  2. ifPresent()Optional<实体类>的配合使用
    • ifPresent 是 Java 8 引入的一个方法,它是 java.util.Optional 类的一个实例方法
      • 消费操作:如果 Optional 对象包含非空值,ifPresent 方法会将这个值传递给一个 Consumer 接口的实现,即一个接受一个参数的函数式接口,并执行这个接口的 accept 方法。
      • 避免空指针异常:通过使用 ifPresent,你可以在不直接调用 get() 方法的情况下,对 Optional 对象中的值进行操作,从而避免可能的空指针异常。
      • 链式调用:ifPresent 方法返回 Optional 对象本身,这使得你可以在调用 ifPresent 后继续链式调用其他 Optional 方法。
    • Optional 类是 Java 8 为了帮助开发者更优雅地处理可能为 null 的情况而引入的。
  3. peek(): 跟 foreach()有点像,但peek是中间操作,foreach是终端操作。
  4. findFirst(): findFirst() 是一个终端操作,它用于返回流中的第一个元素。如果流为空(即没有任何元素),则 findFirst() 返回一个空的 Optional 对象。

分批处理

  • 思路一: 如果数据库读取数据时无法一次性读入所有数据到后端服务器中,或者业务需求只需要一次接口访问处理一部分数据时。
    • Mapper层读取数据时使用 .last(“limit 10”) 来限制读取的条数
  • 思路二: 如果一次性读入了所有数据,但是数据在处理过程中还需调用外部接口,但是外部接口无法一次性承受所有数据的批量访问。
    • Lists.partition(实体对象列表, 批次大小)
    • parallelStream()
    • 分批处理时,如何将流中元素和外部接口批量返回的数据进行对应。建议可以使用访问接口时和接口返回时数据中的不变量作为map的key,建立起两者之间的联系。

命名规范和常见的取名示例

  1. 包名:
    • 应该全部使用小写字母
    • 通过以公司或组织域名的逆序开始
    • 避免使用缩写,除非它是广泛认可的
  2. 类名
    • 使用驼峰命名法,首字母大写
    • 类名应该是名词,如User, Order, PaymentService
  3. 接口名
    • 通常以大写字母I 开头,后面跟驼峰命名法
    • 接口名应该是形容词或过去分词,如 IUserRepository, IOrderService
  4. 方法名
    • 使用驼峰命名法,首字母小写
    • 方法名应该是动词或动词短语,描述方法的行为
  5. 变量名
    • 使用驼峰命名法,首字母小写
    • 变量名应该是描述性的,表名变量的用途
    • 常见命名:
      • 数据库一中的一条数据:entity
      • 数据库映射对象: do
      • 视图映射对象:vo
      • 输入对象/输出对象: inputObj / ouputObj

http://www.kler.cn/news/306140.html

相关文章:

  • “树”据结构:并查集从入门到AC
  • MATLAB基础语法知识
  • MySQL指令
  • linux 操作系统下的cut命令介绍和使用案例
  • JavaScript控制语句和函数的使用
  • Python Numpy布尔数组在数据分析中的应用
  • 思维商业篇(3)—三大竞争战略
  • 【安全系列--处理挖矿】
  • Centos 执行yum安装 出现Failed connect to mirrors.163.com:80; 拒绝连接
  • Golang | Leetcode Golang题解之第409题最长回文串
  • Java中的服务端点响应缓存:Spring Cache抽象
  • ★ C++基础篇 ★ string类的实现
  • Python实现pdf转图片、转文字、去水印
  • 房产销售系统开发:SpringBoot技术要点
  • 避免 PyCharm 将该 Python 脚本作为测试运行
  • 串口数据波形显示工具对比
  • k8s service如何实现流量转发
  • Python 课程10-单元测试
  • 基于 TDMQ for Apache Pulsar 的跨地域复制实践
  • 2024.9.14 Python与图像处理新国大EE5731课程大作业,马尔可夫随机场和二值图割,校正立体图像的深度
  • 攻击者如何在日常网络资源中隐藏恶意软件
  • rust + bevy 实现小游戏 打包成wasm放在浏览器环境运行
  • Vue3使用Websocket进行跨页面通信
  • 2024年金九银十最新版Java面试题及答案整理(持续更新)
  • 从单体到微服务:FastAPI ‘挂载’子应用程序的转变
  • AI在医学领域:医学AI的安全与隐私全面概述
  • 【iOS】ViewController的生命周期
  • Linux06(vi/vim)
  • 【Python机器学习】循环神经网络(RNN)——超参数
  • 什么是Java 语法糖?