自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringAop的实践应用

使用AOP来对前端传来的对象参数进行 BaseDto中属性的填充 这样就不用每次都去UserThreadLocal中拿了再又往BaseDto中放了。

2023-05-19 15:50:18 521 1

原创 Spring循环依赖

3 B 顺利初始化完毕,将自己放到一级缓存里面(此时B里面的A依然是创建中状态)然后回来接着创建 A,此时 B 已经创建结束,直接从一级缓存里面拿到 B,然后完成创建,并将A自己放到一级缓存里面。2 B 实例化的时候发现需要 A,于是 B 先查一级缓存,没有,再查二级缓存,还是没有,再查三级缓存,找到了A然后把三级缓存里面的这个 A 放到二级缓存里面,并删除三级缓存里面的 A。创建的话 要给A做属性创建 然后属性创建的时候呢 (A里面是需要填充B的 所以我们又重新走A的路子去创建B )

2023-05-17 17:43:10 491

原创 Thradlocal底层原理

用弱引用消除了Threadlocal这个key的内存泄漏, 用remove消除了该条Map记录的内存泄漏。tl.set其实是以Treadlocal为key 放入的对象为value 构造的一个map。因为是以当前线程为key来放的value 所以肯定不会发生弄串的问题 是一对一的。回不回收都拿不到 他只有一个作用,管理直接内存 也是只要有垃圾回收就会被回收。为什么用弱引用:用强引用容易导致内存泄漏 弱引用方便垃圾处理器回收。虚是专门用来管理对外内存的。只要有垃圾回收,就会被回收。

2023-05-11 15:04:52 375

原创 分布式缓存Redis 面试突击

判断节点宕机:与哨兵非常相似,有主观宕机和客观宕机 一个认为是主观宕机,多个认为是客观宕机,如果一个节点认为某个节点宕机了,就会在gossip ping命令中,ping给其他节点,如果超过半数认为其宕机了,那么他就会变成fail。对于主从架构来说,master是必须要做持久化的,因为如果不做持久化,一但master宕机,是没有本地数据可以恢复的,会认为自己的数据是空的,然后slave也会在master上去拉取空数据。RDB与AOF如何选择:可以两种都开启。AOF来保证数据不丢失,作为数据恢复的第一选择。

2023-05-11 11:11:29 635

原创 分布式搜索引擎es 面试突击

在写进shard之后 会写进内存buffer中,同时会写进tanslog日志中,每隔一段时间会把buffer中的数据刷进磁盘,refresh操作->刷到segmentFile中,segmentfile 中就存储最近1秒内buffer中写入的数据 刷到segmentfile之前会先进os cache操作系统级别的一个内存缓存中 为什么说es是准实时的,因为是每隔1秒refresh一次,写入的数据1秒后才能被看到。一个index里可以有多个type,每个type的字段都是差不多的,但是有一些略微的差别。

2023-05-08 14:58:43 689

原创 MQ相关面试题

我有ABCD四个系统,A要分别发送数据给BCD,如果C不要了 我是不是得取消?如果又来个E 我是不是又要发给E?而且如果C挂了怎么办 那我还得整个重发机制所以不如我直接弄个消息队列 A把数据发给消息队列 BCD直接去取即可:用户点击提交以后,我得自己调用一次数据库,然后调用B系统完成相关操作,再给用户返回成功信息,那响应时间长所以我不如用户点提交后 我把数据放消息队列中,然后直接给用户返回成功,那么用户体验感就会好很多,剩下的让B系统收到消息后去处理,做数据库操作即可。

2023-05-05 11:28:03 558

原创 AQS 抽象同步队列的简单理解

AQS的一些简单理解

2023-04-28 17:33:55 632

原创 spring底层原理 IOC与AOP

首先Tomcat在启动的时候,会去启动这个 spring容器,spring容器呢,会根据xml的配置或者是我们配的注解,去实例化一些bean对象,然后根据xml配置或者注解,去对bean对象之间的引用关系,来进行一个依赖注入, 让类与类之间解耦。如果不使用IOC的话,你就得自己去菜市场买菜、做饭才能吃上饭。动态代理技术 动态的创建一个代理类出来,创建这个代理类的实例对象,在这个里面引用你真正自己写的类,所有的方法的调用,都是先走代理类的对象,他负责做一些代码上的增强,再去调用你写的那个类。

2023-04-27 11:01:28 850

原创 并发编程学习笔记

我持续提交任务,只要线程池中的线程数量小于corePoolSize,就会创建新线程来执行这个任务,执行完了就尝试从无界队列获取任务,知道线程池里面有corePoolSize个线程, 接着再次提交,发现线程数量已经有corePoolSize个了,此时就直接吧任务放入队列中即可,线程会争抢获取任务执行,如果所有的线程都在执行任务,那么无界队列中的任务会越来越多。他刚开始先获取数组5的值,null,然后执行CAS,线程1,比较一下,put进去我的这条数据,同时间,其他的线程执行CAS,都会失败。

2023-04-24 11:16:52 326

原创 HashMap 学习笔记

判断二进制结果中是否多出了一个bit的1,如果没多,那就是原来的index,如果多了出来,那么就是index+oldCap,通过这个方式,就避免了rehash的时候,用每个hash对新数组length取模,取模性能不高,位运算性能更高。总结:对每个hash值,在他的低十六位中,让高低十六位进行了异或,让他的低十六位保持了高低十六位的特征,尽量避免一些hash值出现冲突,大家可能会进入数组的同一个位置。算出key的hash值,到数组中寻址,找到一个位置,把key-value放入数组,或者从组里取出来,

2023-04-14 16:48:59 375

原创 Mysql高级 学习笔记分享

因为更新表的时候,mysql不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。当我们用范围条件而不是相等条件检索数据,并请求共享锁或者排他锁时,innoDb会给符合条件的已有数据条件的索引项加锁,对于键值在条件范围内并不存在的记录,叫做“间隙”Myisam的读写调度是写优先,,不适合做写为主表的引擎,写锁后,其他线程不能做任何操作,大量的更新会使查询很难的到锁,从而造成永远阻塞。Derived(表示是 临时表 衍生表)

2023-04-14 10:59:49 354

原创 HashMap工作原理

位于15的元素 一半放在了新表的15 一半放在了新表的31 因为第五位可能是0也可能是1。//如果next指向null 说明迭代到了最后一个元素,也没找到 与需要插入的元素一直的node。//扩容之前的table数组大小已经达到最大阈值,则不扩容,且设置扩容条件为int的最大值(表示绝了扩容的后路)//e node临时元素 部位null的时候 找到了一个与当前要插入的key—value一直的key的元素。//低位链表 存放扩容之后的下标位置,与当前数组的下标位置一致。

2023-04-10 16:25:06 280

原创 java虚拟机 简单理解---学习《深入理解java虚拟机》

JVM运行时数据区、内存分配与垃圾回收、Class文件结构、内加载机制、执行引擎

2023-03-31 16:34:49 615

原创 No data found for resource with given identifier问题

今天这个问题 这两天把我我弄麻了,本地服务调用没问题,但是11上已经发布的服务偏偏就是那几个接口报错,一开始怎么想都没想通。我一看这个请求头跟url不对劲啊 这么长,而且就那几个报错的接口的特别长,其他的都是比较简短的。本地没报错是因为本地前端调后端不需要反向代理,不用经过Nginx,而11那个是配了Nginx的 估计是11的Nginx配置里面设置的请求头长度是有限度的 或者缓存比较小 如果放太多东西在请求头 网页重新刷一下就直接崩了。

2023-03-23 17:04:01 3313

原创 2023.3.2工作学习记录 Redis redis-cli基本命令 SpringDataRedis 缓存穿透 缓存雪崩 缓存击穿 Constants的使用 idea插件translate翻译

可重入锁实现机制 因为有可能我们方法一调用了锁 方法一又调用了方法二 方法二中也会尝试去获取锁 就相当于是一个循环的圈 每次尝试获取锁都会给 value加一 一直到value为0并且确认了这把锁是自己的才可以获取到锁。

2023-03-09 17:15:38 130

原创 2023.2.22 DTO与VO的使用

注册时,那这个接口的参数应该只有UserName,Password,因为RegisterTime是后台赋值的,Id是数据库自动生成的。不然,那二个参数对于开发前端的人来说是无意义的,因为传递也没有效果。数据库中只有某几个用户信息,但是前端页面需要展示更多个关于用户的消息,如用户的角色Role,而User实体类中的信息不全,为了返回更多的信息,创建一个新类UserVO extends User,只在UserVO中添加更多属性,而且以VO结尾表示用于返回前端的数据。DTO 数据传输对象 用于前端给后端传。

2023-02-22 17:30:46 731

原创 2023.2.15工作学习记录 git Docker compose容器编排

container模式:新建的容器和已经存在的一个容器共享一个网络ip配置而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。web微服务项目,除了Web服务容器本身,往往还需要再加上后端的数据库mysql服务容器,redis服务器,注册中心eureka,甚至还包括负载均衡容器等等。Docker-Compose是Docker官方的开源项目负责实现对Docker容器集群的快速编排。

2023-02-18 09:26:50 318

原创 2023.2.14 Docker网络

一个独立的Network Namespace, 而是和宿主机共用一个Network Namespace。host模式 直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行NAT 转换。网桥 docker0 就像有一个插槽一样 两两匹配 互相相通。容器将不会虚拟出自己的网卡而是使用宿主机的IP和端口。安装完docker后会创建三种默认网络模式 5。docker网络管理与容器调用之间的规划。例子:新建容器后会分配各自的ip。

2023-02-14 17:39:56 50

原创 2023.2.13学习记录 Docker Redis安装 DockerFile 中一次性定义好某个环境是什么样的 然后你再build这个镜像 Linux虚拟机网络配置

可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。虚拟机与主机构建一个专用网络并且通过虚拟网络地址转换(NAT)设备来对IP进行转换,虚拟机可以通过共享主机IP来访问外部网络,但外部网络无法访问虚拟机。DockerFile Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。虚拟机直接连接外部物理网络的模式,虚拟机可以直接访问外部网络,并且对外部网络是可见的。可以一次性用命令查出所有的虚悬镜像。

2023-02-13 16:55:23 78

原创 2023.2.11学习记录 Docker容器卷 类似于双向绑定,主机目录内容改变,容器内容也改变,反之亦然 ll查看文件详情,touch新建文件cat查看文件内容

容器数据卷 :容器目录与宿主机目录映射 绕过了联合文件系统 docker不会在容器销毁时销毁掉其挂载的数据卷 重点:将docker容器中的数据保存进宿主机的磁盘中。继承: 容器u2可以继承容器u2的容器卷 u1是什么样u2就是什么样 也就是说 此时 主机与u1及u1的子类u2 都可以共享一个容器卷。如果docker容器中的内容被修改 主机中的被挂载的内容也会同步。主机目录中的内容会跟docker容器中的内容同步。3:数据卷中的更改不会包含在镜像的更新中。1:数据卷可在容器之间共享或重用数据。

2023-02-11 17:27:35 139

原创 2023.2.10学习记录Docker容器

Linux中的vi编辑器叫vim,它是vi的增强版(vi iMproved),与vi编辑器完全兼容,而且实现了很多增强功能。可以将容器提交为镜像:例子 首先用一个容器安装好原本没有的vim包 然后将其提交到镜像中 再通过镜像打开容器来使用。关于docker容器数据卷:启用了数据卷的容器实例他的数据会保存在宿主机的某个磁盘中。使用exec重新进入容器的bash后 使用exit退出是不会终止该容器的。完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

2023-02-10 17:48:26 633

原创 2023.2.9学习记录 Doker 三大组成 镜像 容器 仓库(包 镜像是类 容器是对象)

Docker是一种Client-Server结构的系统 Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器。只需要将100%能跑通过的 源码+配置+环境+版本。跟虚拟机是有些类似的 一个doker跑一个镜像 可以有很多歌doker在跑。Doker镜像就是一个只读的模板 镜像可以用来创建很多个Doker容器。容器是用镜像创建的运行实例 就跟用类创建对象一样。可以把容器看作是一个简易版的Linux环境。

2023-02-09 17:43:28 384

原创 2023.2.8学习记录

此处的 you possibly can for you 是说你能做到的 修饰的是everything 就是尽你全力做那个时间里你能做到的事。对以where或者which开头的句子 其实已经定了基调 多数是名词从句 When 当这个时候。该文主要说了一个老人回首前程 后悔无比 还好最后发现只是一个梦 他还有选择的机会。今天给查询出来的结果集加了一个升序排序 order by ***英文歌学习 Last Christmas。让每一天都过得有价值。

2023-02-09 08:18:18 150

原创 2023.1.12学习记录 业务相关

这里可以在关系表user_zb中新增一个字段 is_show 如果该字段为0则不展示 为1则展示。

2023-01-12 17:44:57 41

原创 2023.1.10工作学习记录

1、名词从句中的连接词是无意义的 that 而副词从句中的连接词是有意义的 比如 because 、though 表原因或者让步。2疑问句与名词从句的转换 How Well prepared is she?Because he needs the money(副词从句),he works hard(主要从句).2、名词从句中主要从句是不完整的 比如said 这种及物动词后还需要一个名词当宾语。而副词从句中的主要从句已经是完整的句子了。副词从句与主要从句之间有关联关系。副词从句与名词从句的区别。

2023-01-10 17:51:48 159

原创 2023.1.5工作学习记录 关于total

关于分页查询中的total 首先分页查询我们是需要接收page和limit 的 并返回page 和limit 还有total。total需要是撇开分页 limit 0,10 这种数据的 他需要是查询的全部数据的条目数。对年月的处理 比如2017-12 那么如果要进1个月的话 不能只进月份 年份也需要加1。

2023-01-05 17:41:21 198

原创 2023.1.4工作学习记录 英文默写

英语短文默写。

2023-01-04 17:53:57 54

原创 12.30生词记录

shoes鞋子 glasses玻璃 trousers裤子 scissors剪刀 faculty教员 committee委员会 proposal 提议建议 statistics统计学 gambling house赌场 gambling赌博 accurate准确的。complete完全的 idiot白痴 hen母鸡 each每 either两者都 neither两者都不 report报告。

2022-12-30 17:49:35 47

原创 12.30工作学习记录 英语语法 were是are的过去式 are是复数动词

made of made from 前者的关系比较直接 比如 椅子是木头做的 在椅子中看得到木头材料 所以用 a chair made of wood 后者呢 wine made from grapes 酒中看不到葡萄了 所以用from。关于主语动词的一致性 第三人称单数需要加s 比如 单数形式has 复数形式have 可以借助限定词观察一致性 比如你的哥哥约翰来看你 这里用has 只有一个人 而你的哥哥和约翰来看你 这里用have 这是两个人。

2022-12-30 17:48:58 972

原创 12.27居家学习记录

短篇英文默写。

2022-12-28 18:39:45 46

原创 12.20工作学习记录 力扣 罗马文转数字

每日一题:罗马文转数字 定义两个指针 不断后移 每一次让前一个指针的值累加为sum 最后返回sum。a barking dog doesn't bite 此处是现在分词 正在叫的狗。That black dog doesn't bite 此处是形容词 黑狗。过去分词与形容词的区别 过去分词要加上ed 表示已经 被 的暗示 已经完成的暗示。现在分词与形容词的区别 现在分词要加上ing 表示正在进行的暗示。最长公共前缀 主要是subString方法。

2022-12-26 10:06:13 489

原创 12.21工作学习记录 swagger注解

ApiModelProperty(value = "业务板块名称")@ApiModel(description = "业务板块实体类")mybatis 模糊查询 关键字搜索。

2022-12-26 10:06:11 54

原创 12.19工作学习记录 Mybatis foreach复习 String取某字符

int类型转String类型用 Integer.toString(num) String中取其中带索引的某个字符 用s.charAt(i)在mybatis中需要返回List结果的话 resultType = "String" 即可。参数为多个对象时 例如一个对象是User 一个对象是list集合。foreach用法复习 for(对象类型 对象名 : 集合名称)2 此处是注意每个对象中的属性需要加上对象名.属性。关于选中多行按住鼠标中间键选中多行即可。

2022-12-19 17:49:03 567

原创 12.14工作学习记录 Redis实战 Linux虚拟机安装 CentOs7安装桌面

4.通过方向键,切换到security页面,通过下方向键选中在下面显示的visualizaiton选项,回车进入更改选项界面,我们选择enabled,就是表示将其开启,完成更改后,按下f10,保存并退出,电脑将再次重启。3.进入bios后,界面如下,首页显示的是电脑和系统配置的一些概略性信息,我们可以通过键盘上的左、右按键,切换顶端的tab,设计虚拟化技术的方法通常都在bios里面,必须现了解如何进入bios,e540是通过f1键进入bios的,不用按fn键。

2022-12-14 17:53:05 283

原创 12.12工作学习记录 Swagger BaseEntity

关于实体类 因为现在很多实体类都是继承了BaseEntity的 所以其实除了本身的属性外 还有很多的封装属性 比如 可以getParam 存进来 然后设置param的键值。比如硅谷课堂的案例 分页数据每行数据中要多出一列的数据 这时候就可以用baseEntity中的param来封装课堂信息进来 这样扩展性更高了。关于Swagger 要写好API等注解 才能在swagger/index.html上出现。

2022-12-14 08:46:52 71

原创 12.13工作学习记录 Feign远程调用 微信公众号 封装与排序 Spring源码解析 ctrl+alt+U可以看类图 ctrl+alt+单击可以跳实现类

对parentId做判断 List oneMenuList = menuList.stream().filter(menu -> menu.getParentId().longValue() == 0).collect(Collectors.toList());BeanFactory实际上是ApplicationContext的一个父接口 其实BeanFactory 才是Spring的核心容器 前者组合了后者的功能。MessageSource: 国际化功能,支持多种语言。

2022-12-14 08:46:16 233

原创 12.10工作学习记录 swagger配置 安装echarts 腾讯云点播 nacos配置 gateway网关配置 网关配置一个跨域配置类就可以解决跨域问题 订单管理模块

Spring Cloud Gateway旨在为微服务架构提供简单、有效和统一的API路由管理方式,Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Netflix Zuul,其不仅提供统一的路由方式,并且还基于Filter链的方式提供了网关基本的功能,例如:安全、监控/埋点、限流等。对删除小节方法做出完善,在删除小节方法中调用了删除视频的方法 这样就可以完善好删除课程时删除小节 删除小节时对视频也进行删除。

2022-12-10 17:54:03 151

原创 12.9工作学习记录 课程统计 Echarts表格插件 Stream.map

map方法就是针对数据对象,通过调用实体类类中定义的方法,对对象中的某个值进行提取,或者对数据对象进行处理,然后将新生成的对象数据收集赋值到新的集合.思路 这两个集合里面的数据 其实就是从findcount方法里面查出的集合里面拿出来的 拆成两份 一份是日期 一份是该日期的用户数。因为上面的data数组存储的是日期 下面的是该日期的用户数量 Echarts要求要返回两个不同的数组。个人的理解:就是在流中对方法的一种调用。//提取对象中的姓名一列的数据。//对集合中的字符转换为大写。

2022-12-09 16:38:12 396

原创 12.06工作学习记录 硅谷课堂项目

关于分页查询接口 需要注意的是 应该写一个方法 用来根据course对象查询分类名称跟讲师名称 在stream.foreach里面调用该方法 为返回的数据集合 records封装分类名称与讲师名称 除了records 还要把totalpage和totalcount返回回去 这两个值是在Page pageParam = new Page(page, limit)这里就已经封装好 问题:原因 Page pageParam = new Page(page

2022-12-09 09:19:15 107

原创 12.8 工作学习记录 确认课程最终发布

binding.BindingException: maven加载机制 在src-main-java目录下面maven只会加载java类型文件 其他类型文件不会加载。通过三个左外连接来关联三张表 因为它既要查出一级分类数据 又要查出二级分类数据 还要查出讲师信息。如何解决 1 直接复制 2 把xml放到resource下 3 通过配置方式自动加载。硅谷课堂项目 根据id查询发布课程信息 修改课程表课程状态为已经发布。课程统计接口:其实就是统计一下该课程下有多少小节。

2022-12-09 09:18:51 78

空空如也

空空如也

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

TA关注的人

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