- 博客(83)
- 收藏
- 关注
原创 nvm安装Node环境
https://github.com/coreybutler/nvm-windows/releases 下载exe即可。安装后 nvm 自己的环境变量会自动添加,但可能需要手工添加 nodejs 的 PATH 环境变量。nvm 即 (node version manager),好处是方便切换 node.js 版本。npm 是 js 的包管理器,就类似于 java 界的 maven,要确保它使用的是国内镜像。建议安装 LTS(长期支持版)切换到 16.16.0。切换到 14.20.0。
2024-04-17 21:11:45
291
原创 安卓初始化项目报错An issue was found when checking AAR metadata
解决办法,将com.google.android.material:material:1.10.0降为com.google.android.material:material:1.8.0。
2023-12-07 21:06:02
2870
原创 SpringCloud中 Sentinel 限流的使用
定义限流规则,里面是一个json数组,所以可以配置多条规则,其实nacos的这个配置相当于没有界面的Sentinel台端,实现的功能是一样的,只不过他定义的规则是持久化的,控制台定义的的规则是推送到我们的项目的,也就是保存在内存当中的,重启就没了,这些参数不知道可以使用控制台的时候 F12去查看对应的名称。注意的是feign接口是不能自己使用注解定义资源的,sentinel开启了监控feign会自动定义feign接口的资源,而且名称是固定的。流控规则,可以定义修改限流规则。
2023-08-14 17:53:54
1403
原创 Mybatis查询
返回实体类,必须指定返回类型, resultType不能省略,并且数据库字段名与实体类不一致会填充NULL,实体类我们一般都是驼峰,数据库字段一般都是下划线,所以在查询的时候可以起别名解决,属性填充本质上调用的是实体类的set方法,例如。第三种方式:是否开启驼峰命名自动映射(配置settings),前提命名要规范,实体类全部使用驼峰命名,数据库字段用下划线命名。例如car_num就会变成 setCar_num实体类并没有这个方法,所以实体类这个变量就会为NULL。用Map接受返回结果。
2023-08-11 21:46:26
276
原创 Mybatis参数传递
实体类传参,#{} 里写的是get方法的方法名去掉get之后将剩下的单词首字母变小写(例。Map传参, #{}里的key要一一对应不能乱写,如果不存在则会填充NULL,不会报错。如果参数只有一个的话,#{} 里面的内容就随便写了。对于 ${} 来说,注意加单引号。如:getAge对应的是#{age},如果这样的get方法不存在会报错。
2023-08-11 21:08:48
207
原创 Rabbitmq的消息确认
消息默认是自动确认的(手动确认需配置文件开启),无论消息是否被成功消费都会被确认,确认后消息就会自动删除。无论消息是否到交换机ConfirmCallback都会触发。只有消息没到达队列才会触发ReturnsCallback。
2023-08-05 22:52:09
866
原创 封装hutool工具生成JWT token
这一步非常重要,否则部署项目会发生JCE cannot authenticate the provider BC。BouncyCastle类是一个加密的第三方类,关闭它使用jdk自带的加密算法。
2023-07-30 16:18:47
1010
1
原创 windows seata 整合nacos
执行 F:\seata-server-1.6.1\seata\script\server\db下的mysql.sql脚本。双击 seata-server.bat 启动seata ,nacos列表有seata服务即表示成功。
2023-07-24 16:28:24
299
原创 windows 安装nacos
修改nacos bin 目录下的 startup.cmd,将MODE由cluster(集群)改为standalone(单机)启动,保存后双击 startup.cmd 即可启动。执行 nacos conf目录下的 nacos-mysql.sql sql脚本。打开nacos conf目录下的配置文件,配置数据库。
2023-07-24 15:40:19
159
原创 springboot下的mybatis缓存
一级缓存是本地或者说局部缓存,它不能被关闭,只能配置缓存范围。例如session2对一条数据进行了修改,session1的一级缓存并不会清除,查询到的仍然是旧数据,建议设置为statment,级别,对于同一session中多次一模一样的查询语句只会查询一次,但由于每次查询结束后都会sqlsession都会自动关闭,一级缓存容易产生脏数据,因为一级缓存是sqlsession级别的,无法感知到其他sqlsession的增删改,对于同一个namespace下的查询语句进行缓存,是跨session级别的,
2023-07-23 11:40:52
648
原创 spring-cloud-starter-gateway 4.0.6负载均衡失败
【代码】spring-cloud-starter-gateway 3.00+
2023-07-22 22:50:34
818
原创 org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
解决办法 修改项目编码。
2023-07-12 18:23:26
70
原创 后端long类型数据在前端产生精度损失
JavaScript的Number类型是浮点数类型,它可以表示的整数范围是从(-9,007,199,254,740,992)到2^53(9,007,199,254,740,992)只有16位数字。java中long类型的取值范围 (-9,223,372,036,854,775,808)(9,223,372,036,854,775,807)。后端我们常常会用Long类型的数据作为ID,例如用雪花算法生成唯一ID。解决办法,将java long类型的数据转换为字符串返回。所以转换过程中会有精度损失。
2023-07-12 10:03:49
719
原创 使用redis + 随机token 实现单点登入思路
一般对于业务方法都需要用户登入才能请求,如果每个方法都去判断用户是否登入太麻烦,可以使用拦截器对所有请求进行统一的登入状态判断。后端拦截业务请求,从请求头里获取token,拼接成key请求redis查询,若为空则拦截,不为空则刷新token的过期时间,放行。对于某些请求不需要拦截,例如登入请求,静态资源请求。前端所有请求必须在请求头里加上token。
2023-07-10 22:25:40
830
原创 持续秒杀高并发技术
冗余设计,反范式,空间换时间。分库:业务分库、读写分离。分表:横向分表、纵向分表。倒计时&Loading。针对静态资源做CDN。
2023-07-08 08:49:21
156
原创 使用redis实现每日签到
redis 中有一个bitmap的数据结构(本质上还是String),可以对每个bit位进行操作,我们可以使用 1 代表签到,0 代表未签。最终呈现的效果,对于每个用户而言,每个月为一个key,签到信息就可以很好的展示了,并且内存消耗非常小,一个用户一年也只有12条数据。当用户签到完成后向数据库插入一条数据,如果用户量非常大数据库数据量会非常大,一个用户如果每天都签到得有365条数据。java代码,由于一个月最多有31天所以我们统计 0 - 30 即可。
2023-07-07 21:39:30
607
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人