曾经做的功能

曾经做的功能

边面边刷

Java 8

Stream流

  • 中间操作

    • filter

    • map

    • distinct

    • sorted

    • limit

    • skip

    • flatMap

      • 一对多
  • 终结操作

    • foreach

    • count

    • min&max

    • collect

    • 查找与匹配

      • anyMatch、allMatch、findAny、findFirst
    • reduce

Optional

CompletableFuture

  • 异步下发人员信息给设备

函数式接口

  • 指仅仅只包含一个抽象方法,但是可以有多个非抽象方法(也就是上面提到的默认方法)的接口

方法引用

处理设备上传的记录

用redis的消息队列

  • 缓存列表用rightPush
  • 取列表用range命令

如何避免重复设备重复上传消费记录和保存消费记录

  • uniqueKey

    • 卡号+卡流水+消费类型+消费机时间戳
  • redis会保存每一种记录的时间戳

可以重新上传,选择指定日期

信息屏下发图片

netty

  • 直接下载文件流
  • 分包断点续传

自己的诉求

系统功能描述

登录

  • pc用户名密码

    • httpsession
  • app

Controller

  • log
  • 切面自定义鉴权

security

  • 路径白名单(过滤器实现)
  • xss(也是过滤器实现)

写app接口

数据迁移

DruidDataSource构建jdbcTemplate

定时清理数据

ThreadPoolTaskScheduler(底层ScheduledThreadPoolExecutor)

文档整理

数据库表结构整理

  • 多表如何关联

    • 一对多人员证件类型

      • @OneToMany(mappedBy = “persPerson”, cascade = CascadeType.ALL)
        private List persCertificateList = new ArrayList<>();

        • 人员的配置
        • 一端使用@OneToMany注释的mappedBy="persPerson"属性表明persPerson是关系被维护端
      • @ManyToOne
        @JoinColumn(name = “PERSON_ID”)
        private PersPerson persPerson;

        • 证件实体的配置
      • 在JPA规范中,一对多的双向关系由多端来维护。

    • 一对一关系

      • 一种外键关联
      • 一种关联表
    • 多对多用户角色

      • @ManyToMany(targetEntity = AuthUser.class)
        @JoinTable(name=“AUTH_USER_ROLE”,
        joinColumns=@JoinColumn(name=“AUTH_ROLE_ID”,referencedColumnName=“ID”), inverseJoinColumns=@JoinColumn(name=“AUTH_USER_ID”,referencedColumnName=“ID”))
        private Set users = new HashSet<>();

        • 角色实体的配置
      • @ManyToMany(targetEntity = AuthRole.class, fetch = FetchType.LAZY)
        @JoinTable(name = “AUTH_USER_ROLE”, joinColumns = @JoinColumn(name = “AUTH_USER_ID”, referencedColumnName = “ID”),
        inverseJoinColumns = @JoinColumn(name = “AUTH_ROLE_ID”, referencedColumnName = “ID”))
        private Set roles = new HashSet();

        • 用户实体的配置
    • JPA中CascadeType级联关系

      • ALL

        • 拥有以下五种权限。
      • PERSIST

        • 级联新增(保存)操作:持久保存一个实体时,也会持久保存该实体的所有相关实体。
        • 举个例子:当我要保存一个用户的时候,系统会将此用户拥有的角色也一起保存到数据库中 ,这便是级联保存,如果用户的角色已经存在数据库中,那么在执行级联保存的时候将会报错,这时就需要与级联合并(Cascade.MERGE)一起使用
      • MERGE

        • 级联更新(合并)操作:持久保存一个实体时,会持久更新该实体的所有相关实体
      • REMOVE

        • 级联删除操作:持久删除一个实体时,与它有映射关系的实体也会跟着被删除。当我们删除一个用户时,会将该用户拥有的所有角色全部删除,因此多对多时慎用级联删除操作
      • REFRESH

        • 级联刷新操作:获取一个实体对象的同时也会重新获取最新的关联对象。
      • DETACH

        • 级联游离(托管)操作:当删除一个实体时,若该实体有外键关联无法删除时,该权限将撤销所有的外键关联,将此实体删除
      • https://shangguanhong.github.io/2019/07/19/jpa%E4%B8%AD%E7%9A%84cascadetype-%E7%BA%A7%E8%81%94%E6%93%8D%E4%BD%9C-%E8%A7%A3%E6%9E%90/

    • 数据库的外键级联关系(navicat)

      • CASCADE

        • 表示主表在进行更新和删除时,更新和删除从表相对应的记录。
      • NO ACTION(不采取行动)

        • 限制在从表有关联记录的情况下,主表不能单独进行删除和更新操作。保持数据的强一致性。
        • 在 MySQL 中,no action 与 restrict 的功能相同。而在其他数据库中,no action 可能为不进行任何操作。
      • RESTRICT(禁止)

        • 限制在从表有关联记录的情况下,主表不能单独进行删除和更新操作。保持数据的强一致性。
      • SET NULl(设空)

        • 表示主表进行更新和删除的时候,从表的对应字段被设为 NULL。
    • 为什么不推荐使用外键

培训文档整理

版本迭代

版本升级

  • git获取版本信息版本比较执行对应的sql

bug修复

模块

消费

  • 出纳机
  • 消费机
  • 补贴机

信息屏

整体项目架构

技术选型

  • 环境

    • jdk1.8
    • maven
  • 主框架

    • springboot

    • springmvc

    • 子主题 3

    • 前端

      • html
      • freemarker
      • js
  • 存储层

    • JPA

    • JDBCTemplate

    • Spring Cache

      • 缓存adms一些信息
    • redis

      • 保存spring session,通过@EnableRedisHttpSession将Session存放在Redis中进行共享1
      • 缓存设备信息
      • 缓存设备上传的记录
      • 缓存下发的指令
  • 其他工具

    • Lombok
  • 开发工具

    • idea
    • git

自己负责模块

心态调整

找自信

面试前做好最坏预期打算

大胆一点,不怕犯错

即使你把原来的项目搞得特熟,也不一定用得到,纯粹是面试

顶多算多一份收入而已,尽力去争取

面试官对你的项目不了解,随便说自己的技术栈

还年轻,不要怕失败

互相选择

不要指望所有问题都答上来

失败也没有关系

不可能完全匹配新公司的技术栈,应该展现学习能力

领导叫他去新公司也是废物一个

找工作就是找个交社保的地方

不要理所应当的觉得老板应该对你好,他需要的是你帮他挣钱,解决问题

别人懂得不一定有你多

没必要花大量时间去了解一些不太实用的东西

不要被一些知乎等网站影响自己的精力

别觉得低人一等就行

影像中最深刻的问题

精度丢失

事务失效问题?

遇到JVM问题,我无从下手,但后来我熟悉了,如何模拟?

很难重现问题?如何解决,如何重现?借助了哪些工具?用了什么命令?得到什么信息?

性能调优过程?

adb查看命令查看日志过程?wireshark

  • 设备出现接收问题,或者没有正确下发

怎么定位到固件问题的

  • 通过wireshark传上来的参数有问题,哪个参数有问题
  • CHECK命令正常下发,返回指令ok,但是依旧没有上传,所以是固件问题

你的优缺点是什么

  • 缺点

    • 学习(学习有一些知识点无法在实际场景中落地,导致一些系统问题无法吸收,比如SpringCluoud)
    • 工作(非自因素导致的焦虑,不知道委婉沟通,固件问题?)
    • 生活(社恐?)
  • 优点

    • 找资源
    • 计划
    • 笔记
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值