自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 前端页面使用axios请求后端接口,提示还未登陆。但是后端接口使用postman验证确实是可行的

原来是因为我前端页面的端口是8080,后端是8083,存在跨域问题,所以虽然在 Response Header 里看到了set-cookie的操作,但是在浏览器的 application里看到,并没有被设置进来。后端接口是有做对用户登陆状态的校验,使用postman进行测试,该接口功能可能,可以满足业务需求,但是前端使用axios请求时会提示用户还没有登陆,实际上,已经存储了session。1.如果是本地开发,并不想做其他额外的操作,可以选择更换浏览器(搜狗浏览器、360浏览器)

2024-04-16 10:16:28 435

原创 SpringBoot通过UUid实现文件上传接口及问题解决

对应在application.properties中的配置是,需要注意的是从本地计算机中复制过来的地址样式会是D:\src\main...,需要把\改成/,才能被正常读取,否则用这个路径去保存是一定会找不到的。// 需要注意,当你在transferTo这个方法中传入了相对路径,该方法会自动为你拼接上一个默认的路径,会导致虽然保存成功,但是你却找不到该文件。注意的是,代码中还没有包含对静态资源的映射,需要添加一个config实现,缺少这个会影响保存后的显示。

2024-04-09 17:22:56 1057 1

原创 面试知识汇总——垃圾回收器(G1垃圾回收器)

在多线程的情况下,这会带来并发的问题。这个N是多少,主要受到G1回收的效率和用户设置的软实时目标有关。每一次的回收,G1会选择可能回收最多垃圾的Region进行回收。每一个Region,它要么是young的,要么是old的。所谓的Humongous,就是一个对象的大小超过了某一个阈值——HotSpot中是Region的1/2,那么它会被标记为Humongous。1.9后的默认垃圾回收算法,特点是保持高回收率率的同时减少停顿,每次只清理一部分,而不是全部的增量式清理,确保停顿时间不会过长。

2024-03-30 09:00:00 217

原创 面试知识汇总——垃圾回收器(垃圾定义与回收算法思路)

记录对象是否被其他对象引用,当对象没有被其他对象引用就说明这个对象已经可以作为垃圾进行回收了。无法解决循环引用。

2024-03-29 09:00:00 282

原创 面试知识汇总——JVM内存模型

jdk8后,永久代被元空间替代,实际上两者都是方法区的实现。对于永久代,如果生成很多class的话,可能出现PerGen space异常,因为永久代的空间配置有限,是和堆的使用地址连续的,元空间的物理地址不再与堆连续,而存在与本地内存中,内存多大,元空间多大。1.7的永久代和1.8的元空间都是方法区的实现,方法区是内存最大的一部分,被线程共享,存放对象的实例,当堆空间不足时,会抛出OOM异常。栈:又叫方法栈,线程私有,线程执行方法都会创建一个栈阵,用来储存局部变量表,调用方法执行入栈,方法返回执行出栈。

2024-03-28 08:15:00 185

原创 面试知识汇总——Mybatis缓存机制

用户发起查询时,Mybatis根据当前执行的语句生成MappedStatemen,在LocalCache中进行查询,如果缓存命中,直接返回结果给用户,如果没有,就查询数据库,将结果写入LocalCache,最后将结果返回给用户。一级缓存的这个生命周期和sqlsession一致,是一个没有容量限定的HashMap,在缓存的功能性上有所欠缺,最大共享范围是一个sqlsession内部,当有多个SqlSession或者分布式的环境下,数据库写操作会引起脏数据,建议设定缓存级别为Statement。

2024-03-27 08:00:00 174

原创 面试知识汇总——MyBatis延迟加载

mybatis是内部封装jdbc,开发时只需要关注SQL语句本身,不需要去处理加载驱动、创建连接等过程,直接编写原生态的Sql语句,可以使用XML文件或注解配置和映射原生信息,避觉得jdbc代码和手动设置参数和获取结果集。在mybatis中仅支持association关联对象和collection关联对象的延迟加载,association指的是一对一查询(联合查询和嵌套查询),collecti指的是一对多查。在配置文件中,启用延迟加载功能:lazyLoadingEnabled = true。

2024-03-26 08:00:00 229 1

原创 面试知识汇总——垃圾回收器(分代收集算法)

如果第一次回收把对象拷贝到From survior里了,那么下一次回收就会把存活的对象从From survior拷贝到To survior,再下一次就会把To survior里的对象拷贝到From surivor,周而复始。那么对象每经历一次垃圾回收之后,那么还存活的话,他的年龄就会加一。当对象的年龄达到阈值的话(默认是15),就会晋升到老年代,老年代里的对象存活率是比较高的。根据对象的存活周期,把内存分成多个区域,不同区域使用不同的回收算法回收对象。对象在创建的时候,会先存放到伊甸园。

2024-03-25 14:02:27 482

原创 面试知识汇总——MySQL内置函数检索(locate,position,instr)

SELECT * from app_info where LOCATE('网', `appName`, 2) > 0;注意:LOCATE(substr,str)与 POSITION(substr IN str)是同义词,功能相同。-- 用LOCATE关键字进行模糊匹配, 从第二个字符开始匹配"网",则"网易云游戏、网来商家"等数据就被过滤了。-- 用LOCATE关键字进行模糊匹配,等同于:"like '%网%'"语法: LOCATE(substr, str, [pos])

2024-03-25 13:47:20 388 1

原创 面试知识汇总——Redis高可用(主从、哨兵、集群)

哨兵模式,由一个或多个Sentinel实例组成的Sentinel系统,它可以监视所有的Redis主节点和从节点,并在被监视的主节点进入下线状态时,自动将下线主服务器属下的某个从节点升级为新的主节点。但是呢,一个哨兵进程对Redis节点进行监控,就可能会出现问题(单点问题),因此,可以使用多个哨兵来进行监控Redis节点,并且各个哨兵之间还会进行监控。但是它每个节点存储的数据是一样的,浪费内存,并且不好在线扩容。主从模式中,Redis部署了多台机器,有主节点,负责读写操作,有从节点,只负责读操作。

2024-03-18 09:00:00 1116 1

原创 面试知识汇总——Spring事务

可重复读:在同一个事务中的查询在开始时是一致的,但是会存在幻读(多个事务同时修改一条记录,事务之间不知道彼此存在,当事务提交后,后面的事务还会覆盖前事务,前事务就像幻觉)开启声明式事务:@transactional,可以标在类或方法内,在方法上必须是public。事务应用和属性配置:标明哪些方法要参与事务,以及相关属性,如隔离级别,超过时间。可串行化:完全串行化的读,每次读都需要获得表级共享锁,读写相互阻塞。未提交读:允许脏读,可能会读取到其他会话中未提交事务修改的数据。事务管理器:管理事务的处理过程。

2024-03-17 09:30:00 395 1

原创 面试知识汇总——Redis持久化操作

RDB持久化,是指在指定的时间间隔内,执行指定次数的写操作,将内存中的数据集快照写入磁盘中,它是Redis默认的持久化方式。执行完操作后,在指定目录下会生成一个dump.rdb文件,Redis 重启的时候,通过加载dump.rdb文件来恢复数据。AOF(append only file) 持久化,采用日志的形式来记录每个写操作,追加到文件中,重启时再重新执行AOF文件中的命令来恢复数据。可以这样理解,给当前时刻的数据,拍一张照片,然后保存下来。RDB,就是把内存数据以快照的形式保存到磁盘上。

2024-03-16 10:00:00 677 1

原创 面试知识汇总——Redis缓存穿透和缓存雪崩

每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。expires字典会保存所有设置了过期时间的key的过期时间数据,其中,key是指向键空间中的某个键的指针,value是该键的毫秒精度的UNIX时间戳表示的过期时间。但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力。

2024-03-15 09:47:21 433 1

原创 面试知识汇总:Redis简介

List:如果列表的元素个数小于512个,列表每个元素的值都小于64字节(默认),使用ziplist编码,否则使用linkedlist编码Hash:哈希类型元素个数小于512个,所有值小于64字节的话,使用ziplist编码,否则使用hashtable编码。Zset:当有序集合的元素个数小于128个,每个元素的值小于64字节时,使用ziplist编码,否则使用skiplist(跳跃表)编码。String是Redis最基础的数据结构类型,它是二进制安全的,可以存储图片或者序列化的对象,值最大存储为512M。

2024-03-14 14:18:24 601

原创 java自定义异常并使用API统一返回对象

在开发中,需要使用API统一返回对象保证后端返回的数据是固定并有格式的,便于前端进行解析,返回相应的信息给用户,这就要求不管程序抛出任何错误或异常,你所返回的对象都应该是:"status": ‘状态码’,"msg": "信息",“data”:“数据”

2024-02-26 21:21:33 1045 1

原创 linux 查看端口占用并杀死进程

linux使用netstat -tunlp | grep或lsof -i: 查看端口占用并杀死进程

2024-02-23 09:45:00 541

原创 Error creating bean with name ‘userController‘问题排查及解决

Error creating bean with name ‘userController‘问题排查及解决,由spring boot版本引发

2024-02-22 09:15:00 2491 2

原创 linux中提取jar包文件并对文件进行修改

场景:在linux服务上的jar包有问题,经过查看error.log,可以发现是因为数据库连接指向的网址不对,需要对application文件进行修改。可以看到会有很多文件,如果文件实在太多可以通过jar tvf xxxx.jar |grep 的方式去查找特定的文件。重新运行jar包即可解决问题。通过使用jar xf xxx.jar 对应的路径 去提取对应的文件,可以看到当前目录下已有相应的目录。使用vim命令去打开相应的文件,修改好对应的内容后,保存并退出。

2024-02-21 11:15:00 949

原创 pgsql创建数据库及添加、修改、删除数据库字段命令

实际上,这样执行会报错,提示使用USING createtime ::timestamp,需要在后面加上USING createtime ::timestamp,最终语句是alter table quotation alter column createtime type timestamp USING createtime ::timestamp。修改示例:alter table quotation alter column createtime type timestamp。

2024-02-20 14:40:29 1227 1

原创 Pgsql常见命令操作:创建数据库,导入配置,打包成dump包

导出为dump包:./pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f /tmp/1.dump db。切换到数据目录:/usr/pgsql-10/bin目录下。导入配置:./psql -h localhost -p 5432 -U postgres -w -d db -f 完整路径如/tmp/1.sql。创建数据库命令:./createdb -h localhost -p 5432 -O postgres 数据库名称。

2024-02-19 12:45:00 867 1

原创 postgresql-10无法正常启动

通过service postgresql-10 restart命令去启动pgsql后,提示job……,用journalctl -xe查看对应问题,并解决,如果是提示read only file,可以通过执行。去挂载文件系统,恢复可读写状态。

2024-02-18 12:15:00 666

原创 使用su – postgers切换用户,出现-bash-4.2$命令行

原因:我在安装postgresql时,先使用useradd添加了一个名为postgres用户,而在使用useradd的时候,都会将所有的配置文件从/etc/skel复制到新用户的主目录下,一般默认在home下面的新用户主目录下,而关于/etc/skel这个目录,是主要被useradd所用到。解决方法:使用su – postgres 切换,通过pwd命令查看用户所在路径,检查用户所在路径下,是否缺少了文件.bashrc文件,使用cp命令复制到用户所在路径就可以。

2024-02-17 10:45:00 795

原创 Pgsql缺少dblink插件,使用dblink命令无法创建数据库连接

注意:Navicat Premium运行select dblink前应该在数据库查询中运行create extension dblink创建扩展,在这里我是已经运行了create extension dblink,仍然提示找不到该函数。建议先运行create extension dblink,确认是否是由服务器端引起的问题。初步判断是服务器端的pgsql缺少了dblink插件,需要找到pgsql的目录,找到contrlib目录,进入dblink,运行make,make install即可安装。

2024-02-16 12:00:00 340 1

原创 Pgsql手动安装10.x版本

Pgsql手动安装10.x版本

2024-02-15 16:40:04 454 1

原创 mybatis-generator提示The server time zone value is unrecognized or represents more than one的排查思路和解决方法

当运行mybatis-generator自动生成dao文件时,产生报错,基本上时因为mysql的版本是8.0.x的,旧版本mysql不会有该问题。检查下方配置是否含有对时区的声明:即serverTimezone=GMT%2B8,对应的时东八区的时间。解决思路:1.降低mysql的版本;2.添加时区说明,固定读取一个时区。填加&serverTimezone=GMT%2B8后,插件可以正常运行。首先,在pom.xml中检查mysql的版本:确认是8.0.16。

2024-02-05 15:51:00 332 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除