• 看代码所学3


    1、随机数:RandomUtils.nextInt(起点,终点);   Int可更改
     
    2、为什么使用uuid作为主键而不是使用自增id,因为可能存在分库,不能控制每个分库中id的自增点,每个库中的id会重复;然后id会增长到什么规模都不知道,所以使用uuid是个比较好的选择。
            uuid生成:UUIDUtils.createUuid(x -> lessonGroupDao.getUuid(x) != null)
            createUuid中存放的是一个断言式接口。
              原始的生成方式:将”—“都替换成”"
             UUID.randomUUID().toString().replaceAll("-", "”);
     
    3、怎么在mybatis中插入了自增主键之后还要能够取出这个主键
            在insert或update的配置中加入 useGeneratedKeys=“true” , keyProperty="主键名"
            <insert id="saveMsg" parameterType="cn.com.hyddl.smarthome.notice.core.nano.Notice"useGeneratedKeys="true" keyProperty="msgId”>
     
    4、rocketmq
            消息顺序性:生产者先生产消息m1,m2到mqserver,然后,为了保证m1先于m2被消费,则让mqserver先发送m1,当消费者接收到后将应答信号发送到mqserver,如果mqserver接受失败就重新发送m1到消费者,知道成功;当mqserver接受应答信号成功就发送m2。但是,有可能m1已经被消费了,但是应答信号发送失败,这就产生了消息重复发送的可能。
            消息重复性:这个就设计到了等幂性了:不同消息在同一个系统上的响应一致。可以在消费端设置一个去重的日志表,将同样id的消息失效,但是会影响性能,所以rocketmq的去重需要在业务中进行。
     
    5、MultipartFile file   前端传来的是一个文件
        MultipartHttpServletRequest request 前端传来的是一个request请求(其中可能包含多文件)
        
        request.getFileNames——>获取传输的多个文件的文件名
        Iterator<String> it = request.getFileNames();
        While(it.hasNext()){
              MultipartFile file = request.getFile(it.next);
        }
       
        file.getName——>获取表单对应名称(不是文件名称)
        file.getOriginalFileName——>获取文件名字
    文件后缀获取方法:
    String fileExt = StringUtils.isBlank(originalName) ?
            ContentTypeUtils.getFileExt(contentType) :
            "." + originalName.substring(originalName.lastIndexOf('.') + 1);
    这个后缀获取需要解释几个地方:
        1、由于我们使用contentType,然后参考MIME文件的话是不靠谱的,因此我们还是尽量使用自带的文件尾缀,使用contentType只是为了兜底
        2、而当我们使用substring的时候我们没有用文件自带的“.”,而是我们自己加一个”.”,因为极端情况下,文件名是啥都没有的,连.都没有,我们用lastIndexOf(’.’)就会返回-1,+1为了截取.后面的内容(也是为了防止报错,很细节这个地方),然后我们给这个前面加上个自己做的“.”
  • 相关阅读:
    2.舵机
    1.呼吸灯
    Python学习笔记——Matplot库
    计算机仿真技术学习笔记(一)
    48、从堆和栈上建立对象哪个快?(考察堆和栈的分配效率比较)
    47、抖动你知道是什么吗?它也叫颠簸现象
    46、交换空间与虚拟内存的关系
    44、程序从堆中动态分配内存时,虚拟内存上怎么操作的
    43、一般情况下在Linux/windows平台下栈空间的大小
    42、一个由C/C++编译的程序占用的内存分为哪几个部分?
  • 原文地址:https://www.cnblogs.com/television/p/9353774.html
Copyright © 2020-2023  润新知