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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值