- 博客(20)
- 收藏
- 关注
原创 -bash: ./start.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
中存在不可见的特殊字符,具体是 "^M"(也被称为 Carriage Return,CR)。这通常是由于在 Windows 系统中编写的文件在 Linux 或者 Unix 系统中执行时,文件格式不兼容所导致的。写Linux启动脚本遇到的一个坑。
2023-12-22 11:39:50
331
原创 MySQL部分函数
HAVING 在 GROUP BY 之后,可以使用分组字段和分组中的计算函数,对分组的结果集进行筛选,这个功能是 WHERE 无法完成的。这样,我们就既利用了 WHERE 条件的高效快速,又发挥了 HAVING 可以使用包含分组统计函数的查询条件的优点。因为 WHERE 可以先筛选,用一个筛选后的较小数据集和关联表进行连接,这样占用的资源比较少,执行效率也比较高。HAVING 则需要先把结果集准备好,也就是用未被筛选的数据集进行关联,然后对这个大的数据集进行筛选,这样占用的资源就比较多,执行效率也较低。
2023-11-30 14:19:38
82
1
原创 记一个RedisConfig坑
连接URI和密码正确且Redis服务正常运行,但是调用 redisTemplate 时报错:Error in execution;nested exception is io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.用自动注入的方式注入LettuceConnectionFactory也可以正常运行。百思不得其姐,遂在RedisConfig手动将密码set进去,则可正常运行。
2023-11-03 16:03:16
195
原创 Vue 报错error:0308010C:digital envelope routines::unsupported
package.json增加配置。
2023-10-30 09:43:48
82
原创 Nignx跳转报404
服务部署成功,但是每次进入登录页面都报一下错误,需要重新刷新才可以,推测试Nginx跳转出问题。后来在Nginx配置文件加了这两行再重启就可以了。
2023-10-30 09:42:46
229
原创 springboot循环依赖
的策略,将尚未完全初始化的Bean对象暴露给其他需要依赖的Bean对象,以便后者能够完成初始化。循环依赖是指两个或多个Bean互相依赖的情况,在Spring容器初始化时会出现。对于循环依赖,Spring在初始化过程中采用了“
2023-10-30 09:40:25
51
原创 @Order 一个使用场景 与基于spring应用Ordered接口
某个利用Redis incr自增编码,服务迁移,Redis数据没有维护好,导致自增的编码丢失,下一次自增又会从头开始,这时可以使用@Order注解在服务启动时查询数据库,并把Redis的值赋上,完成初始化。@order注解是spring-core包下的一个注解,@Order的作用是定义Spring IOC容器中Bean的执行顺序的优先级(这里的顺序也可以理解为存放到容器中的先后顺序)。
2023-10-30 09:38:48
154
原创 服务临时文件目录不存在
在linux系统中,springboot应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。临时目录长时间(有文说是十天)没有使用会被系统自动删除,临时目录不存在再上传文件上去就会报错。遇到这种情况可以重启服务重新生成临时文件目录,这种方式长时间不用同样会遇到上面的问题。推荐为服务指定临时文件目录并创建对应文件夹,再重启服务,这样就可以规避上面的问题。
2023-10-30 09:37:37
35
原创 虚拟机重置root用户密码
在打开虚拟机 在出现下图界面的时候按 e 进入管理界面 e要快速按 不然就会直接进入虚拟机。最后touch /.autorelabel 验证,如果没反应则修改成功。New password: 的时候就输入自己的root 新密码,Retype new password: 这里再输一次密码。然后找到 UTF-8 在后面添加 rd.break。这里对密码会有一些限制 比如长度什么的。
2023-10-30 09:34:55
952
原创 allEntries = true 慎用
在@CacheEvic的实现这里有个if (operation.isCacheWide()),我们可以找到setCacheWide方法,cacheWide就是@CacheEvict中allEntries属性的值。在@CacheEvict清除缓存的的注解中有一个allEntries属性,默认值未false,当指定allEntries的值为true时,会忽略指定key,清除value对应缓存中所有元素。(应该是带上星号会遍历全表)如果你用到的缓存数据库是Redis,需要根据实际情况谨慎使用。
2023-10-30 09:24:44
938
原创 从redis取值报错:Reading from a byte array threw an IOException (should never happen).
百度之后才了解是反序列化问题,参考了一个解决方案:往redis存的时候,统一用json格式化成String,再存入redis,取的时候使用jsonObject再转成对象使用。亲测此方法是可行的。
2023-10-26 11:16:39
1877
1
原创 @Transactional一些注意点
在并发情况下,如果锁已经被占,有其他线程在等待锁,这时候其他线程的事务已经通过getById获取过数据,等进入锁后再次getById获取到的a.getStatus()仍让是false,此时便会重复执行/**其他业务逻辑*/中的内容,有一些业务场景就会因此造成脏数据。当一个带有@Transactional注解的方法被调用时,Spring会检查当前线程的ThreadLocal中是否已经存在一个活动的事务。如果不存在,则创建一个新的事务并开启,如果已经存在一个事务中,则加入到该事务中。
2023-09-20 16:32:33
120
1
原创 敏感字段页面加密
网页对敏感字段进行加密显示,这里可以由后台返回的加密数据前端直接渲染。工具包很强大,还有其他的常见类型字段的加密方法。这里可以使用hutool的工具包进行加密。
2023-08-25 17:16:29
62
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人