自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_51627264的博客

代码不懂或者有疑问可以交流

  • 博客(68)
  • 收藏
  • 关注

原创 spring-boot之shiro安全框架配置使用

导入shiro整合sping的包。通过当前用户拿到session。判断当前的用户是否被认证。获得用户是否拥有什么角色。

2024-03-29 15:12:35 447

原创 spring-boot之接口文档Swagger配置使用

bean‘documentationPluginsBootstrapper 错误,还可以在application.properties里面加"spring.mvc.pathmatch.matching-strategy= ANT_PATH_MATCHER"html==> 后端。伪造后端数据,json。访问地址http://localhost:8080/swagger-ui/●后端:后端控制层,服务层,数据访问层[后端团队]4.配置Swagger ==> Config。●前端:前端控制层,视图层[前端团队]

2024-03-29 14:57:36 898

原创 Java面试题:请简述你对ZAB协议的理解

ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议,实现分布式数据一致性所有客户端的请求都是写入到leader进程中,然后由Leader同步到其他节点称之为Follerwer,在集群数据同步的过程中,如果出现Follower节点崩溃或者Leader进程崩溃时,都会通过Zab协议来保证数据一致性ZAB协议包括两种基本的模式:崩溃恢复和消息广播。集群中所有的事务请求都由Leader节点来处理,其他服务器为Follower,Leader将客户端的事务请。

2024-03-18 00:00:08 255

原创 Java面试题20之论如何实现接口的幂等性(高并发情况下)

电商的前后端交互,下一步,登陆注册,由于网络原因的重复发送请求,同一资料发送多分,:相同的资料进来只注册一个。

2024-03-16 22:54:53 260 1

原创 Java面试题总结18之springcloud四种分布式事务解决方案

XA规范:分布式事务规范,规定了分布式事务模型四个角色:事务管理器(协调者TM),资源管理器(参与者RM),应用程序AP,通信资源管理器CRM全局事务:一个横跨多个数据库的事务,要么全部提交,要么全部回滚JTA事务时Java对XA规范的实现,对应JDBC的单库事务第一阶段(prepare):每个参与者执行本地但不提交,进入ready状态,并通知协调者已经准备就绪。

2024-03-16 01:03:03 877

原创 Java面试题总结17之分布式锁解决方案

zookeeper 天生设计定位就是分布式协调,强一致性,锁很健壮。如果获取不到锁,只需要添加一个监听器就可以了,不用一直轮询,性能消耗较小。在高请求高并发下,系统疯狂的加锁释放锁,最后 zookeeper承受不住这么大的压力可能会存在宕机的风险。基于关系型数据库实现分布式锁,是依赖数据库的唯一性来实现资源锁定,比如主键和唯一索引等。Redis 锁实现简单,理解逻辑简单,性能好,可以支撑高并发的获取、释放锁操作。

2024-03-14 21:22:49 294

原创 Java面试题总结16之分布式id生成方案

Twitter开发的一种生成64位ID的服务,基于时间戳、节点ID和序列号。这种方法涉及到使用数据库来生成和管理ID段,以实现分布式ID的生成。是一个高性能的键值数据库,它可以用于生成分布式唯一标识符。分布式协调服务在集群中生成唯一ID。

2024-03-14 20:54:20 1347

原创 Java面试题总结15之简述你对RPC,RMI的理解

远程对象必须实现Java.rmi.server.uniCastRemoteObject类,这样草能保证客户端访问获得远程对象时,该远程对象将会把自身的一个拷贝以Socket的形式传输给客户端,此时客户端所获得的这个拷贝称为存根,而服务器端本身已存在的远程对象则称之为骨架,其实此时的存根时客户端的一个代理,用于与服务器端的通信,而骨架也可认为是服务器端的一个代理,用于接受客户端的请求之后调用远程方法来响应客户端的请求。RPC:在本地调用远程的函数,远程过程调用,可以跨语言实现,httpClient。

2024-03-14 20:41:05 461

原创 Java面试题总结14之分布式结构下,Session共享有什么方案

4,IP绑定策略,使用Nginx或其他负载均衡软硬件中的IP绑定策略,同一个IP只能在指定的同一个机器访问,但这样也就失去了负载均衡的意义,当挂掉一台服务器的时候,会影响一批用户的使用,风险很大。3,服务器之间进行Session同步,保证每个服务器上都有全部的Session信息,但当服务器数量笔记多的时候,同步是会有延时甚至同步失败。3,服务器重启Session不丢失(不过也要注意Session在Redis中 刷新、失效机制)4,不仅可以跨服务器Session共享,甚至可以跨平台(例如网页端和APP端)

2024-03-13 12:28:49 272

原创 Java面试题总结13之spring cloud负载均衡算法,类型

源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。Nginx:七层负载均衡(应用层,根据不同的URL制定不同的规则,不同的URL路由到不同的server层,跟客户端或者服务端维护一个长连接),支持HTTP,E-mail协议,同时也支持四层负载均衡(传输层)。最小连接数算法比较灵活和智能,由于后端服务器的配置不尽相同,对于请求的处理有快有慢,它是根据后端服务器当前的连接情况,动态地选取其中当前。

2024-03-13 00:13:10 511

原创 微信小程序小白易入门基础教程1

尺寸单位拿以上的需求去实现不同宽度的页面适配假设page375px利用一个属性calc属性CSS和wxss 都支持一个属性750和rpx中间不要留空格运算符的两边也不要留空格view{*/

2024-03-12 23:25:43 1837

原创 Java基础,你面试可能会问到的各类问题

Throwable 类是Java语言中所有 错误 (errors) 和 异常(exceptions) 的父类。在Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;异常(Exception)位于 java.lang 包下,它是一种顶级接口,继承于 Throwable 类。在程序在编译和运行阶段经常会产生异常或者错误,而认识异常之前,首先认识其父类 Throwable 类。java.lang,此包Java 语言标准包,使用此包中的内容无需import 引入。

2024-03-12 23:11:45 775

原创 前端NodeJs笔记之包结构到进程和线程到命令行到Node模块化讲解

包实际上是一个压缩文件,解压以后还原为目录,符合规范的目录应该包含如下文件:​ -package.json 描述文件​ -bin 可执行二进制文件​ -lib js代码​ -doc 文档​ -test 单元测试。

2024-03-11 23:58:18 362

原创 Java面试题总结12MySQL之MVCC和主从复制原理

即多版本并发控制,读取数据时通过一种类似快照的方式将数据保存下来,这样读写与写锁就不会冲突,不同的事务session只会看到自己特定版本的数据,版本链MVCC只会在READ COMMITTED(已提交读)和REPEATABLE READ(可重复读)两个隔离级别下工作,已提交读和可重复读的区别在于他们生成ReadView的策略不同。

2024-03-11 17:49:55 670

原创 Java面试题11MySQL之执行计划到事务及慢查询

如果prepare成功,binlog写盘,再继续将事务日志持久化到binlog,如果持久化成功,那么InnoDB事务则进入commit状态(在redo log里面写入一个commit记录)redo log的刷盘会在系统空闲时进行。首先分析语句,是否load了额外的数据,可能时出现呢了多余的行并且抛弃掉了,可能是加载了许多不需要的列,对语句进行分析以及重写。分析语句的执行计划,如何获得使用索引的情况,之后修改语句或者修改索引,使得语句可以尽可能的命中索引。

2024-03-10 13:06:33 424

原创 Java面试题总结10之MySQL索引和锁

索引的数据结构和具体存储引擎的实现有关,在MySQL中使用较多的索引为Hash索引,B+树索引等,InnoDB存储引擎的默认实现为B+树索引,对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大部分需求为单挑记录查询的时候,可以选择哈希索引,查询性能最快,其余大部分场景,建议选择BTree索引。

2024-03-08 11:28:11 956

原创 Java面试题之JVM

多标:原本并不是垃圾对象,但在垃圾收集过程中,用户线程修改了其引用关系,导致垃圾收集器将其误认为是垃圾。漏标:原本是垃圾对象,但在垃圾收集过程中,用户线程重新将其引用指向了该对象,如果垃圾收集器错误地将其回收,将导致程序运行错误。首先,如果不暂停用户线程,就意味着在垃圾收集过程中会持续产生新的垃圾对象,无法完全清理干净。其次,用户线程的运行必然会导致对象的引用关系发生改变,可能出现两种情况:多标和漏标。为什么会有STW:避免非垃圾对象发生变化,暂停用户线程,收集垃圾,再回复用户线程。

2024-03-07 20:58:44 368

原创 Mybatis从入门到CRUD到分页到日志到Lombok到动态SQL再到缓存

1.什么是缓存[ Cache ]存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2.为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3.什么样的数据能使用缓存?经常查询并且不经常改变的数据。[可以使用缓存]1.导入maven依赖3.在mapper.xml中配置-- 在当前Mapper . xmL中使用二级缓存-->

2024-03-07 12:50:01 1272

原创 Tomcat详解

重要配置文件可以配置启动的端口号tomcat默认端口号为8080可以配置主机的名称默认的主机名为localhost 127.0.0.1默认网站应用存放的位置为webapps修改后。

2024-03-07 00:05:39 454

原创 ServletContext

web.xml配置文件。

2024-03-07 00:01:14 292

原创 Java面试题总结9:mybatis

基于SQL语句编程,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理,提供XML标签,支持编写动态SQL语句,并可重用,补充需要手动开关连接,很好的与各种数据库兼容,提供映射标签,支持对象与数据库的ORM字段关系映射,提供对象关系映射标签,支持对象关系组件维护。实现mybatis的interceptor接口并复写intercept()方法,如何再给插件编写注解,指定要拦截哪一个接口的哪些方法即可,在配置文件中配置编写的插件。

2024-03-05 20:44:08 515

原创 Java面试题总结8:springboot

在springboot下的tomcat.jar包就是一个嵌入式服务器。节省下载安装tomcat,不需要打war包,如何放到webapp目录下再运行只需要一个安装了Java的虚拟机,就可以直接在上面部署应用程序了因为spring boot内置了tomcat.jar,运行main方法时会自动启动tomcat,并利用tomcat的spi机制加载springmvc。

2024-03-04 22:47:04 494 3

原创 javascript学习快速入门

JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、

2024-03-04 22:18:40 884

原创 Linux入门到入土

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具。所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

2024-03-04 00:02:32 8578 2

原创 Java面题总结7

开启自动装配,在xml配置文件定义autowire属性autowire属性有五种装配的方式:no-默认情况下,自动装配是通过ref属性手动设定的byName根据类的属性名进行自动装配Cutomer的属性名称是person,spring会将bean id为person的bean通过setter方法进行自动装配byType根据bean的类型进行自动装配Cutomer的属性名称是person,spring会将Person类型通过setter方法进行自动装配。

2024-03-03 21:47:37 876

原创 Java面试题总结6

方法A是一个事务的方法,方法A执行过程中调用方法B,那么方法B有无事务以及方法B对事务的要求不同都会对方法A的事务具体执行造成影响,同时方法A的事务对方法B的事务执行也有影响,这个影响具体是什么就两个方法所定义的事务传播类型所决定。REQUIRED(spring默认的事务传播类型):如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务。SUPPORTS:当前存在事务,则加入当前事务,如果当前没有事务,就以非事务方法执行。NEVER:不使用事务,如果当前事务存在,则抛出异常。

2024-03-01 22:22:36 522

原创 Http请求

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以形式给出;而消息内容则具有一个类似的格式。这个简单模型是早期成功的有功之臣,因为它使开发和部署非常地直截了当默认端口80https默认端口443。

2024-03-01 13:57:42 242

原创 当你的游览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么

所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。TCP/IP 协议族中的 IP 指的就是网际协议,协议名称中占据了一半位置,其重要性可见一斑。可能有人把“IP”和“IP 地址”搞混,“IP”其实是一种协议的名称。DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定。按层次分,TCP 位于传输层,提供可靠的字节流服务。

2024-03-01 13:45:42 430

原创 网站是如何访问的

【代码】网站是如何访问的。

2024-03-01 13:44:32 264

原创 npm安装

由于改变了module的默认地址,"PATH"修改为,否则使用 module 的时候会导致输入命令出现 “xxx不是内部或外部命令,也不是可运行的程序或批处理文件”这个错误。进入环境变量对话框,在系统变量下新建 “NODE_PATH”,输入”D:\RunSoftware\nodejs\node_global\node_modules“。windows下,安装msi文件在过程中会直接添加path的系统变量,变量值是你的安装路径,例如“E:\nodejs”然后,输入命令:cnpm -v,查看结果。

2024-03-01 13:15:43 474

原创 ElasticSearch仿京东搜索

新建前端模板进行请求接口编写。

2024-02-29 20:05:56 718

原创 Java面试题总结5

AOP:将程序中的各种交叉业务逻辑(比如安全,日志,事务等)封装成一个切面,然后注入到目标对象(具体业务逻辑)中去,AOP可以对某一个对象或者某些对象的功能进行增强,比如对象中的方法进行增强,可以在执行某个方法之前额外的做一些事情,在某个方法执行之后额外的做一些事情。依赖注入:获得依赖对象的过程被反转了,控制被反转之后,获得依赖对象的过程由自身管理变成了由IOC容器主动注入,依赖注入是实现IOC的方法,由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。

2024-02-29 14:11:17 364

原创 Java面试题总结4

应用场景:为其他的线程提供服务支持的情况,或者在任何情况下,程序结束后,这个线程必须正常立刻关闭,就可以作为守护线程来使用,反之,如果一个正在执行某个操作的线程必须要正确的关闭,否则就会出现不好的后果的话,那这个线程就不能作守护线程,而是用户线程,通常是一些关键的事务,比如数据库的录入或者更新,这些操作都是不能中断的。守护线程:为所有非守护线程提供服务的线程,任何一个守护线程都是整个JVM中所有非守护线程的保姆,没有所谓的线程安全,指的应该是内存安全,堆和栈。可以把守护线程理解为用户线程。

2024-02-28 19:28:20 233

原创 LeedCode 704二分查找

先分析对区间的定义,才能把握while(left>right)还是while(left<right),right=middle-1还是right=middle,可以把区间的定义理解为不变量,一开始定义的区间左闭右闭,那后面也得坚持左闭右闭。

2024-02-23 22:29:34 106

原创 Java面试题总结3

若对象未执行为finalize方法,将其放入F-Queue队列,由低优先级线程执行该队列中对象的finalize方法,执行finalize方法完后,GC会再判断该对象是否可达,若不可达,则直接可回收,否则,对象”复活“,每个对象只能触发一次finalize()方法。(不推荐使用,finalize方法不确定性大,无法保证各个对象的调用顺序)AppClassLoader(最核心的,默认的系统类加载器,线程上下文加载器(每个类加载器都可以访问它))是自定义类加载器的父类,负责加载classpath下的类文件。

2024-02-23 17:33:44 539

原创 JAVA面试题总结2

首先,Java中引入了虚拟机的概念,也就是在机器和编译程序之间加入了一层抽象的虚拟的机器,这台虚拟的机器可以在任何平台提供给编译程序一个共同 的接口,就是我们常说的跨平台字节码就是在编译程序中向虚拟机生成能够理解的代码(在Java中是.class文件),之后由解释器将虚拟机代码转为特定系统的机器码执行好处:通过字节码的方式,一定程度解决传统解释型语言执行效率低的问题,还保留了解释型语言可移植的特点,而且由于字节码并不转对一种特定的机器,因此,Java程序可以无需重新编译就可在不同的计算机上运行。

2024-02-22 16:36:49 374

原创 Java面试题自我总结1

面向对象分为封装,继承,和多态封装:内部细节对外部调用透明,外部调用无需修改或者关系内部实现有两个经典 的封装场景,JavaBean的属性私有,提供getset对外访问,以及orm框架,不需要关心链接如何建立,只需要引入mybatis,调用方法即可继承:继承基类的方法,并作出自己的改变或者扩展多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。

2024-02-20 23:11:16 323

原创 测试Java类加载器

C:\Users\21886\Desktop\学习\javaSE\src\Thread\demo02\commons-io-2.15.0.jar;C:\Users\21886\Desktop\学习\javaSE\out\production\javaSE;//获取扩展加载器的父类加载器-->根加载器C/C++//获取系统类加载器的父类加载器-->扩展类加载器。//如何获得系统类加载器可以加载的路径。//测试JDK内置的类是谁加载到。//测试当前类是那个加载器。//获取系统类的加载器。

2023-11-07 16:00:41 74

原创 通过反射获取泛型

TypeVariable和WildcardType几种类型来代表不能被归一到Class类中的类型但是又和原。Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数据。GenericArrayType:表示一种元素类型是参数化类型或者类型变量的数组类型。的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦除。//通过泛型获取方法 通过方法获得泛型的参数化泛型,获取返回值的泛型。WildcardType:代表一种通配符类型表达式。

2023-11-07 15:57:11 96

原创 Java反射操作注解

/获得注解的value的值。//通过反射获得注解。//获得类指定的注解。

2023-11-07 15:49:33 84

Hutool是一个功能丰富且易用的Java工具库,通过诸多实用工具类的使用,旨在帮助开发者快速、便捷地完成各类开发任务

Hutool是一个功能丰富且易用的Java工具库,通过诸多实用工具类的使用,旨在帮助开发者快速、便捷地完成各类开发任务。 这些封装的工具涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等一系列操作, 可以满足各种不同的开发需求。 Hutool既是一个工具集,也是一个知识库,我们从不自诩代码原创,大多数工具类都是搬运而来,因此: 你可以引入使用,也可以拷贝和修改使用,而不必标注任何信息,只是希望能把bug及时反馈回来。 我们努力健全中文注释,为源码学习者提供良好地学习环境,争取做到人人都能看得懂。

2024-03-07

基于 vite5.x + vue3.x + arco-design2.x 全新的前端框架 vue-admin-arco

对比其他开源 admin 框架有如下优势: 1. 支持前端控制路由权限 intelligence、后端控制路由权限 all 模式 2. 已知开源 vue admin 框架中首家支持 mock 自动生成自动导出功能 3. 提供 50 余项全局精细化配置 4. 支持 scss 自动排序,eslint 自动修复 5. axios 精细化封装,支持多数据源、多成功 code 数组,支持 application/json;charset=UTF-8、application/x-www-form-urlencoded;charset=UTF-8 多种传参方式 6. 支持登录RSA加密 7. 支持打包自动生成7Z压缩包 8. 支持errorlog错误拦截 9. 支持多主题、多布局切换 使用注意事项: 1. 项目默认使用lf换行符而非crlf换行符,新建文件时请注意选择文件换行符 2. 项目默认使用的最严格的eslint校验规范(plugin:vue/recommended),使用之前建议配置开发工具实现自动修复(建议使用vscode开发) 3. 项目使用的是要求最宽泛的MIT开源协议,保留MIT开

2024-03-07

高效的Vue低代码表单,可视化设计,一键生成源码

> 拖拽式可视化表单设计; > 支持PC、Pad、H5三种布局; > 支持运行时动态加载表单; > 支持表单复杂交互控制; > 支持自定义CSS样式; > 支持自定义校验逻辑; > 支持国际化多语言; > 兼容IE 11浏览器; > 可导出Vue组件、HTML源码; > 可导出Vue的SFC单文件组件; > 支持开发自定义组件; > 支持响应式自适应布局; > 支持VS Code插件;

2024-03-07

一个基于 Vue、Datav、Echart 框架的 " 数据大屏项目 "

一个基于 Vue、Datav、Echart 框架的 " 数据大屏项目 ",通过 Vue 组件实现数据动态刷新渲染,内部图表可实现自由替换。部分图表使用 DataV 自带组件,可进行更改,

2024-03-07

RuoYi-Vue-Plus 是重写 RuoYi-Vue

RuoYi-Vue-Plus 是重写 RuoYi-Vue 针对 分布式集群与多租户 场景全方位升级(不兼容原框架)

2024-03-07

适配手机、平板、pc 的后台开源免费模板

基于 vue3.x + CompositionAPI setup 语法糖 + typescript + vite + element plus + vue-router-next + pinia 技术,适配手机、平板、pc 的后台开源免费模板

2024-03-07

实现了ssm项目的基本增删改查

实现了ssm项目的基本增删改查

2022-10-20

空空如也

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

TA关注的人

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