技术选型
nginx
key01:启动路径一定不能有中文
key02:如果不想使用默认的80端口,可以在nginx-1.22.0\conf下的nginx.conf修改,修改位置在 http-server-listen 属性
停止服务器,强制停止命令为nginx -s stop
注意:若启动了nginx,要重启才能生效,重启命令为nginx -s reload
key03:
反向代理
负载均衡
异常
key01:
【异常】JDK21报错NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member fie
lombok版本兼容性的问题
Maven依赖更新新版 lombok 为 1.18.30 即可
key02:
登陆失败:注意修改配置文件的数据库连接信息
key03:
发生了错误: 加载主类 时出现 LinkageError 的错误
编译工具的设置中选择了一种版本的java,而项目设置的是另一种java,将两者修改为一个版本的java,就可以解决了
key04:
mapper层的SQL语句,注意对应关系别写错
key05:
key06:数据库重启电脑后丢失
处理方法:切换mysql
key07:websocket无法访问
刚开始试了一下普通html页面,发现websocket的连接功能正常,并且收发消息也正常。使用nginx反向代理,由于修改了端口号,因此需要在nginx的app.d0aa4eb3.js和app.d0aa4eb3.js.map这两个文件修改对因的端口号,然后关闭nginx重新启动nginx,并且清理浏览器的缓存记录,然后就可以前后端通过nginx连接成功
key08:语言播报一直响
处理:将之前的测试方法注释掉,否则每5s播报一次
swagger
常用注解
Redis
redis-cli由于目标计算机积极拒绝,无法连接
进入安装目录开启2个命令窗口
一个运行:redis-server.exe redis.windows.conf
另一个运行:redis-cli.exe -h 127.0.0.1 -p 6379
命令台不用关,打开图形化界面工具
常用命令
java中使用Redis
Spring Cache
知识点
key01:属性复制
使用BeanUtils.copyProperties(对象1,对象二),将对象一的属性复制到对象二的属性中。必须保证属性名一致
key02:JWT
通过某种方式动态获取当前登录员工的id
将JWT令牌中id封装进去线程,然后在service层进行共享即可
调用自定义工具类
获取id
key03:分页插件
分页插件
前端传递的属性
1、引入依赖
key04:消息转换器
key05:RequestMapping
当使用了@RequestMapping注解,下面使用的为相对路径
key06:属性赋值
给属性赋值
Employee employee = Employee.builder()
.id(id)
.status(status)
.build();
key07:阿里云文件上传
文件上传
工具类AliOssUtil
key08:批量操作数据
key09:前后端联调
一般查询操作位GET请求,query方式,通过地址栏传递id
key10:mybatis的数据封装问题
当两个表都有name字段属性,通过左(右)外连接可能会查询到两个相同的属性名。这时mybatis封装#{}就会出问题。
处理:取别名,将需要查询的属性取别名
key11:路径参数
使用了@RequestMapping,记得后面的mapping加 /
key12:接口文档
key13:httpclient
阿里云的依赖底层实现了httpclient,导入了阿里云的依赖就不需要导入这个了
key14:微信小程序
key15:微信支付
1.cmd+ipconfig获取ip地址
2.内网穿透
key16:Spring Tack
key17:websocket
key18:统计报表
统计每日新注册人数和总注册人数
业务层:
//存放每天的新增用户数量 select count(id) from user where create_time < ? and create_time > ?
List<Integer> newUserList = new ArrayList<>();
//存放每天的总用户数量 select count(id) from user where create_time < ?
List<Integer> totalUserList = new ArrayList<>();
for (LocalDate date : dateList) {
LocalDateTime beginTime = LocalDateTime.of(date, LocalTime.MIN);
LocalDateTime endTime = LocalDateTime.of(date, LocalTime.MAX);
Map map = new HashMap();
map.put("end", endTime);
//总用户数量
Integer totalUser = userMapper.countByMap(map);
map.put("begin", beginTime);
//新增用户数量
Integer newUser = userMapper.countByMap(map);
动态sql:(注意,><)前面不是美元符号
key19:Stream流
//TODO 01 通过Stream流获取集合总和
//计算时间区间内的订单总数量
Integer totalOrderCount = orderCountList.stream().reduce(Integer::sum).get();
//计算时间区间内的有效订单数量
Integer validOrderCount = validOrderCountList.stream().reduce(Integer::sum).get();