自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMq学习笔记

exchange:交换机,处理消息分配到相应的队列,有四种类型:direct(直接交换机,路由键完全一致,点对点路由)、fanout(广播,路由到所有该交换机绑定的队列)、topic(根据路由键路由,可以模糊匹配)、header(性能不好,很少用)binding:交换机和队列的绑定关系,一个交换机可以绑定多个队列,一个队列也可以被多个交换机绑定,交换机还可以绑定交换机。channel:信道,在connection上建立的虚拟链接,每个线程通过自己的信道连接,就减少了TCP连接销毁的开销。

2022-09-21 11:14:12 470 1

原创 死锁的原因、例子、和解决办法

死锁的四个必要条件:互斥(一个资源被一个线程使用时不能被其他线程使用)、请求和保持(线程在等待资源时不会放弃持有的资源)、不能强占(只能等待占用资源的线程主动释放资源)、环路等待(形成线程-资源的环路)死锁的定义:多个线程在运行过程中争抢资源而造成一种僵局,在无外力的作用下,不能继续下去。环路等待:最常采用的就是破坏环路,比如设置超时放弃、按顺序请求资源等。请求和保持:等待不到资源时,不给其他资源。不能强占:等待不到资源时,放弃持有资源。死锁的解决办法:破坏四个必要条件。互斥:足够的资源,一次性分配。

2022-09-07 16:47:21 376

原创 设计模式学习笔记(二)

例子:一个汉堡店的基础套餐: 汉堡 + 饮料。汉堡可选蔬菜汉堡和鸡肉汉堡,饮料可选雪碧和可乐。要求输出不同选择下的订单信息(名称,包装,单价,总价)通过继承或依赖,作为两个原本不兼容的接口之间的桥梁。比如音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。原型模式是拷贝一个原有的对象,生成一个新的对象,浅拷贝是实现Cloneable,深拷贝是通过实现Serializable 读取二进制流。将复杂的对象细化拆分成零件,再组装,不同的组装可以得到不同的结果。..

2022-08-12 10:46:09 162

原创 设计模式学习笔记(一)

开闭原则:对扩展开放,对修改关闭;里氏替换原则:任何父类出现的地方子类都可以出现,父类的可扩展性依赖倒置原则:依赖接口而不依赖于类接口隔离原则:一个类能多实现就多实现,降低依赖,降低耦合最少知道原则:一个实例尽量不要和别的实例产生联系,将实体功能独立合成复用原则:多使用合成,聚合的方式,少使用继承。...

2022-08-09 15:35:55 143

原创 istio流量管理和零信任安全配置

定义:创建JWT请求认证策略,可以定义请求头中的ACCESS TOKEN,以及JWT TOKEN 生成的相关信息。定义:用于认证请求头中的ACCESS TOKEN 是否可信,并授权给来源合法的请求。使用DestinationRule来定义启用或禁用双向TLS认证。定义:开启双向TLS身份认证功能,组件之间通过密文通信。定义:在不信任的网络上建立安全。...

2022-08-05 10:53:22 242

原创 医疗项目RIS

GeneratedValue为一个实体生成一个唯一的主键,有两个属性generator和strategy。框架springboot+JPA+QueryDsl+MapStruct。-IDENTITY主键由数据库生成,采用数据库自增长,Oracle不支持这种方式。-SEQUENCE通过数据库的序列产生主键,MYSQL不支持。-Table提供特定的数据库产生主键,该方式更有利于数据库的移植。工具类Pd4ml(PDF打印工具类)数据库h2内存数据库。测试类Mockito。...

2022-07-29 10:46:24 122

原创 Istio对接虚拟机

按照官方文档配置,但是却没有成功,问题还在查询中,问题生成的hosts文件为空,虚拟机上istio启动失败,以下是操作步骤大致原理istio通过workloadEntry和serviceEntry来关联和管理虚拟机,一个workloadEntry可以用来描述一个vm实例,serviceEntry通过workloadSelector标签来绑定workloadEntry,虚拟机启动一个实例时会自动注册,此时istio就可以访问虚拟机了。...

2022-07-29 10:43:03 1226 1

原创 kubernetes学习笔记

kubernetes基本概念

2022-07-29 10:01:23 221

原创 Istio学习笔记

Istio学习笔记

2022-07-12 17:40:22 255

原创 序列化和反序列化的理解

序列化是为了方便传输将对象转换成字节流,而反序列化则是,将字节流重建为对象。1.static修饰的参数会随着值的改变而改变,所以static修饰的变量不能被序列化比如:在对象中定义 private static int age = 6;将对象序列化成文件之后,再修改age的值为10,按照反序列化的要求,对象反序列化之后age本应是6,但实际却是10,并没有保留当时序列化是对象age的值。2.transient关键字:修饰的变量不能被序列化(这个关键字就这一个作用)比如:对象中定义一个变量 t

2022-05-24 13:36:45 231

原创 如何保证redis和数据库数据的一致性

首先能放在缓存中的数据,应该是即时性和数据一致性要求不高或者访问量大但是更新频率不高的数据。所以一般只需要保证redis和数据库数据的最终一致性即可,此时只需要在数据存入缓存的时候加上失效时间,这样到一定时间之后,自然会重新查数据库存入缓存,此时两边数据就一致了。用例:比如页面上的一个数据总条数的统计总共有10w条,存在缓存中,这时表中又新增了20条,页面上的总条数没有立即增加,过一小时甚至一天才变成10万零20条也无伤大雅。如果是及时性要求比较高的数据,那么可以在更新数据的时候重新放入缓存,或者在

2022-05-12 13:00:37 2912

原创 final关键字的基本理解

final可以修饰变量、方法、类, 其中变量包括局部变量和成员变量,变量类型有基本数据类型或者引用类型。final修饰变量则表示该变量为常量,一旦初始赋值后不能改变,对于基本数据类型的变量来说也就是值不能变,对于引用类型的变量来说是引用的地址不能改变,但是该地址的内容可以改变。final修饰方法则表示该方法不能被重写,final修饰类则表明,该类不能被继承,没有子类,但是可以有父类。不能有子类是因为该类的所有成员方法都不能被重写。所以final不能和abstract同时使用,因为abstract

2022-05-11 13:12:29 128

原创 brkj面试记录

1.从页面点击到接口收到请求之间,spring的运行过程是怎样的2.分布式事务3.线程池4.乐观锁悲观锁5.数据库索引的原理6.http协议7.微服务的注册发现的了解-----------------------------------------------------------------------------------1.从页面点击到接口收到请求之间,spring的运行过程是怎样的用户发送请求到前端控制器,前端控制器根据url找到并生成处理对象,再调用处理器生

2022-05-10 19:50:35 317

原创 zxdj面试记录

1.常用到的集合有哪些,arrayList和hashSet是否线程安全,怎么处理2.简单讲讲spring bean的生命周期3.查询的优化(因为我目前做的搜索引擎)4.了解的设计模式5.jvm的了解,new一个对象会在哪个区域6.项目的设计和开发是否我一个人完成的7.tomcat了解多少,容器的了解8.事务的了解9.数据库索引有哪些类型10.切面的了解,以及日常的使用,比如日志11.常用的框架,讲讲spring-boot的注解,以及为什么可以引入依赖直接使用12.

2022-05-09 18:18:07 197

原创 页面菜单权限设计

功能:创建角色,给每个角色设置页面权限表设计:1.角色表(菜单id用逗号隔开)2.资源表:记录所有菜单及其权限3.用户表4.接口功能根据token获取所有用户权限用户信息 @ApiOperationSupport(order = 2) @ApiOperation("根据token查询用户信息") @GetMapping("/verify") public CommonResult<EmployeeResourceRe...

2022-01-04 19:29:38 1621

原创 按模板生成PDF文档下载,生成多个pdf文档打包下载

参考链接:springboot pdf浏览与下载_a327365114的博客-CSDN博客主要内容与参考文档一致,稍作修改以便于批量下载原文档生成的pdf直接在内存中,本文档为了方便打包,把生成的pdf临时放在本地,最后再删除1.调用 // 创建本地临时文件夹 String fatherPath = "D:\\专利pdf"; File path = new File(pathName); path.delete();

2021-11-18 10:08:37 492

原创 按模板生成单个word文档下载,生成多个word文档打包下载

1.生成单个文本下载// 调用 // 获取模板需要的信息 PatentBase patent = patentBaseMapper.selectByPrimaryKey(id); // 把信息用map封装 Map<String, Object> params = new HashMap<>(); params.put("title", "选中专利pdf下载"); params.put

2021-11-18 09:54:14 405

原创 List的浅拷贝和深拷贝

需求描述:遍历菜单时,给有选择的菜单赋值为true问题描述:所有菜单指向一个对象// 问题代码// 获取所有菜单列表List<GrupInfo> gropDeopDown = crmGroupService.getGropDeopDown((byte) -1, -1L);List<ResourceInfoDto> resourceInfoDtos = funModel.stream().map(e -> { ... // 把菜单列表存入返回的d

2021-10-25 13:52:33 461

原创 webSocket和http长连接短连接

最近接到一个需求,要给web页面实时推送消息,和前端一顿讨论后决定使用webSocket(因为感觉比较有高级感,而直接轮询有点low)所以按照网上的教程一顿操作实现之后觉得自己棒棒的,但是后来发现除了实时推送的消息还有定时推送的消息,需要写Xxjob去调自己的webSocket(Xxjob放在另一个工程中),这种操作就感觉有点奇怪了,所以去请教了大佬,才了解到webSocket其实一般使用很少,除非是对实时性要求很高的一些游戏之类的,一般的web不会使用,因为实现麻烦不说,还要一直和前端建立一...

2021-10-25 13:28:28 2197

原创 miliankeji面试准备

面试要求:1.Java基础扎实、熟悉常见的开源框架2.熟悉java集合框架、IO操作、具有多线程开发经验3.精通javaEE技术架构、熟悉常用设计模式4.精通MySQL,熟悉Mysql数据库优化设计5.熟悉Linux开发环境,熟悉常用命令,熟悉Tomcat服务器6.熟悉敏捷开发流程面试准备(这次以java基础为准)1.简单介绍一下面向对象编程把每个步骤抽象成对象,依次调用这些对象,虽然这样占用资源高,但是代码耦合降低方便后期维护。面向对象三大特证:封装、继承、多态2.简单介.

2021-09-18 10:34:16 76

原创 maizhiwang面试准备

面试要求:1.java基础扎实,对JVM、多线程并发、IO、网络有一定的掌握和应用经验2.熟练使用springboot、springcloud、Mybatis、Redis、rocketMq3.熟练使用ES全文搜索引擎,了解分词原理4.熟悉MySQL数据库,精通SQL语法5.熟练使用Linux操作系统Java虚拟机新生代分为Eden、Servivor From、 Servivor To三部分,Eden内存不足时调用MinorGC;MinorGC先把Eden和From区的对象

2021-09-18 10:32:50 86

原创 java常用框架

spring以IOC(控制反转)和AOP(面向切面)为内核,IOC是指不自己通过new创建对象,而是把对象创建交给spring框架,AOP是指用来封装多个类的公共行为,把那些与业务无关却又被各个业务调用的公共模块封装起来,以减少代码重复,降低代码的耦合,比如日志、权限、事务等。spring认为所有java类都是类的实例对象(Bean)所以spring是基于Bean的开发。spring的优点:1、方便解耦,简化开发2、方便集成各种框架,在web层可以和Struts2和SpringMVC集成,在

2021-09-13 16:44:25 78

原创 Java学习笔记(下)

注解元注解:定义其他注解的注解,@Target(表示该注解可以用于什么地方)、@Retention(表示在什么级别保存该注解)、@Documented(将此注解包含在javadoc中)、@Inherited(允许子类继承父类中的注解)自定义注解:除了元注解都是自定义注解。java中常用注解:@Override:表示当前方法覆盖父类中的方法@Deprecation:表示方法已过时,方法会被加上删除线,使用时会有警告@SuppressWarnings:表示关闭一些警告,SafeVarar

2021-09-06 10:38:05 114

原创 Java学习笔记(中)

I/O流字节流:操作byte类型数据,主要是OutputStream、InputStream的子类,不要缓冲区,直接对文本操作。字符流:操作字符类型数据(char)主要是Reader、Writer的子类,使用缓冲区,不关闭流就不会输出任何内容I/O包主要就是字节流和字符流,以及二者之间的转换。OutputStreamWriter:Writer的子类,将输出的字符流变成字节流。InputStreamReader:Reader的子类,将输入的字节流变成字符流。反射// 初始化对象

2021-09-03 11:05:49 52

原创 Java学习笔记(上)

面向过程和面向对象面向过程:自顶而下按步骤实现,占用资源低实现快面向对象:把每个步骤抽象成对象,通过依次调用实现,占用资源高速度慢面向对象三大特征:封装:把客观事物封装成抽象的类,对象内部的数据可以私有,给对象内部数据提供保护。类就是封装了数据和操作的逻辑实体。继承:继承可以直接使用父类已有功能,实体继承和接口继承,接口继承时子类必须实现父类的方法。多态:不同内部对象可以有同一个外部接口,即同一个方式调用的方法具体操作可能不同(多个子类继承同一个父类,调用父类时实现就可能不同),运行

2021-09-01 16:15:33 141

原创 MySQL学习笔记之MySQL优化

MySQL数据优化1.优化索引索引占用存储空间少,mysql会自动为primary和unique列增加索引,索引会降低数据库增删改效率。一般对sql的where条件字段或order by 字段建立索引创建索引CREATE INDEX 索引名 ON 表名(字段名)删除索引DROP INDEX 索引名查询索引SHOW INDEX FROM 表名2.添加查询缓存3.优化数据库SQL语句where条件尽量不要使用函数,!=或<>,OR,会使索引失效确定结果只有一条增加 L

2021-08-30 15:17:31 85

原创 MySQL学习笔记之MySQL的简单了解

1.MySQL逻辑架构第一层:连接、认证、安全(大多数客户端/服务器都有这一层功能)第二层:数据解析、分析、优化、缓存和内置函数,存储过程、触发器、视图(核心层)第三层:存储引擎(负责数据的存储和提取)2.MySQL优化和执行执行查询前先查询缓存是否有相同的检索,有则返回缓存结果,没有再对检索进行分析、优化解析和执行3.并发控制服务器层和存储引擎层1)为了解决并发问题而使用共享锁和排它锁,并且锁的精度越高越好,但是大量锁的使用同样占用存储降低服务性能,这就引入了锁策略——表锁

2021-08-30 10:11:45 67

原创 谷粒商城基础篇复习(下)

使用oss上传图片:服务端签名后直传:用户发送上传Policy请求到应用服务器,应用服务器返回上传Policy和签名给用户,用户直接上传数据到OSS。参考文档:https://help.aliyun.com/document_detail/91868.html?spm=a2c4g.11186623.2.10.97e17d9cfwODvA1.阿里云创建项目bucket、accessKeyId和accessKeySecret需要创建一个RAM账号、添加访问控制权限、开启跨域访问2.创建gulimall-

2021-08-27 09:35:19 73

原创 谷粒商城基础篇复习(上)

谷粒商城基础篇已经全部看完了,还存在一些问题(网关路由木有生效),看到一位博主的笔记很详细,我就做了整体的快速复习:参考链接:https://blog.csdn.net/hancoder/article/details/106922139/集群是个物理形态,分布式是个工作方式。spring cloud使用http+json远程调用,服务之间调用用feign组件注册中心(Nacos):服务注册发现配置中心(Nacos):管理微服务的配置信息服务熔断降级防止微服务之间相互依赖造成的雪崩效应服务熔断

2021-08-26 17:00:57 179

原创 谷粒商城配置OSS,Oss endpoint can‘t be empty.

配置阿里云oss时第一步<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId></dependency>上传文件成功了,接着使用<dependency> <groupId>com.alibaba.cloud</groupId>

2021-08-03 14:38:19 2991 5

原创 spring cloud gateway 网关没有生效

今天又是网关问题,lb://本地项目没有生效,fitters也没有生效,先记录一下问题后续再找解决办法吧,明明服务gulimall-product和renren-fast已经注册并且启动了,但是前端调用时获取不到验证码,多番测试后发现,fittlers中地址转换没有生效,比如我直接访问http://localhost:88/s ,可以转跳到百度,然后我把qq_route的fitters设置成如下所示:- id: qq_route uri: https://www.baidu.com

2021-07-26 16:29:20 4535 4

原创 Gateway网关没有生效

小菜鸟就是这样,明明按照步骤一步步配置的,却总是达不到想要的效果,spring cloud gateway 配置完成后,并且启动成功了,但是网页却没有跳转,如下:

2021-07-14 16:10:27 5856 9

原创 Nacos作为配置中心,bootstrap.properties没有生效

按照视频配置Nacos配置中心后,发现视频内配置完启动时指向了nacos配置文件gulimall-member.properties,而我启动之后,根本没有这条日志,只有nacos作为注册中心的日志,加上@Value之后果然报错,取不到值,如下图:经过各种百度之后,发现应该配置文件没有生效,很多文章让导入context依赖<dependency> <groupId>org.springframework.cloud</groupId>

2021-07-13 15:04:21 3688 9

原创 配置nacos注册中心后,项目启动失败

最近开始练习谷粒商城项目,遇到很多奇葩的问题,所以我决定记载下来。之前的虚拟机安装了好几次每次都是各种问题,虚拟机磁盘满了,或者昨天刚弄好第二天就不能用了等等,反复卸载安装百度无果后,作为一个小菜鸟不得不放弃了,直接进入项目代码部分。昨天学习的是配置nacos注册中心,按照视屏讲解配置完成后发现项目启动失败了,如下图所示:...

2021-07-13 09:46:21 1139 1

空空如也

空空如也

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

TA关注的人

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