自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 CSDN如何导出为pdf文档?

CSDN如何导出为pdf

2023-03-13 14:37:02 3112 4

原创 jvm不同版本(jdk6、jdk7、jdk8)之间的class常量池、运行时常量池、字符串常量池与堆、方法区的种种关系

问:传说中的R大出现了,再问一下StringTable本身又存在哪里呢,有人说是方法区,又有人说是native memory?答:HotSpot VM的StringTable的本体在native memory里。

2022-09-01 03:28:20 1215 3

转载 springboot+shiro+jwt+redis+cache实现无状态token登录(完美好文章!!)

转载自:https://blog.csdn.net/stilll123456/article/details/88370355原文原博主已重新整理到如下个人博客:SpringBoot整合shiro+jwt+redis - 无状态token登录(一)总览篇SpringBoot整合shiro+jwt+redis - 无状态token登录(二)授权篇SpringBoot整合shiro+jwt+redis - 无状态token登录(三)鉴权篇~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2021-04-19 11:23:12 1880

转载 SpringBoot Security 实例DEMO(好框架就用这个了!!)

原文格式清晰,转载自:https://www.cnblogs.com/cjsblog/p/9152455.html如图,是一种通用的用户权限模型。一般情况下会有5张表,分别是:用户表,角色表,权限表,用户角色关系表,角色权限对应表。一般,资源分配时是基于角色的(即,资源访问权限赋给角色,用户通过角色进而拥有权限);而访问资源的时候是基于资源权限去进行授权判断的。Spring ...

2019-08-05 21:38:11 1086

转载 Spring 循环依赖(图例+源码分析)

什么是循环依赖呢?如下图所示,有两个或两个以上的对象之间引用,也就是A对象中有属性B 引用了B对象,B对象中有属性C 引用了C对象,而C对象中有属性A 引用了A对象。构成一个环状结构,这就是循环依赖。对于普通的java对象而言,对象之间的循环依赖可以通过set方式设置之间的引用关系。而SpringBean中的循环依赖就复杂的很多,单例Bean的创建过程是交给Spring管理的,并不是简简单单的通过set就可以解决的。那么Spring是如何解决的循环依赖的呢?

2024-04-12 03:03:39 8

转载 分库分表(基因算法)

通过uid分库,假设分为16个库2的4次方,个人称之为“基因范围区”,采用uid%16的方式来进行数据库路由,这里的uid%16,其本质是uid的最后4个bit决定这行数据落在哪个库上,用户ID(uid)的这最后的4个bit位“1010”,就是分库基因。利用了基因的思想,从一个维度的信息里,摘取了一个分库基因,其他维度信息里也全会带上,使得所有维度的信息都能通过此分库基因完成分库。此思想也可以用于这类分流系统中。

2024-04-10 21:22:17 13

原创 JavaScript构造函数(new构造js对象与原型链prototype)

那这个例子里面的汽车模子就是构造函数,每一辆汽车就是实例,构造函数生成的实例都有相同的结构,颜色可能有所不同。1、使用对象字面量创建一系列同一类型的对象时,这些对象可能具有一些相似的特征(属性)和行为(方法),降低代码冗余,提高代码复用率。5、js语言中使用构造函数(constructor)作为一个生成对象的模板,可以以此生成多个对象,每个对象都有相同的。4、“对象”是单个实物的抽象,通常需要一个模板,表示某一类实物的共同特征,然后“对象”根据这个模板生成。关键字来调用的函数,都叫做构造函数,一般。

2024-04-03 17:58:05 1108

转载 java锁synchronized(this) 与synchronized(class) 有啥区别

synchronized(this) 与 synchronized(class) 相同处:均对代码加锁,实现互斥性。synchronized(this) 与 synchronized(class) 区别:作用域不同。

2024-04-01 17:44:34 29

转载 css的定位position【absolute relative】相关知识点

最近再看position相关知识点,发现有许多以前没有注意到的细节知识点,有不小的收获,本文就position absolute使用详细分析下。同时设置top/left/right/bottom,实现铺满父容器同时设置top/bottom,在垂直方向上铺满父容器同时设置left/right,在水平方向上铺满父容器不设置top/left/right/bottom, 无需设置父元素relative,使用margin来实现定位效果。

2024-03-27 11:08:46 23

转载 接口和抽象类分别在什么时候使用?其中我对基本功能在不断变化为什么使用抽象类而不使用接口类的理解

由此上述代码示例,可以看出如果使用接口的话在Duck类中就不能有默认的方法实现。必须全部是abstract方法,使用接口的实现类必须重写方法才能调用。也正因为抽象类可以有默认的方法实现,故基本功能在不断变化最好选择使用抽象类,因为可以在抽象类实现默认的方法。

2024-03-06 11:34:45 60

转载 Java中的基本数据类型和引用数据类型的区别【清晰、简洁】

ps:通过变量地址可以找到变量的具体内容,就如同通过房间号可以找到房间一般。类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型。基本数据类型只有8种,可按照如下分类。

2024-02-28 16:09:39 84

转载 Vue中Ai对话框设计Demo

【代码】Vue种Ai对话框设计Demo。

2024-01-12 11:23:47 669

转载 Vue项目配置WebSocket连接{ws、wss 连接方式}配置

这里target: 里边指向的都是后端server的地址 16000是我后端服务的端口 , 我这里websocket服务和普通的业务项目用的都是一个项目 所以都是16000端口。因为在本次测试的时候使用的是普通的ws方式连接 所以为了方便切换就写了两个websocket代理路由。env.development 文件和 .env.production 文件都加上这两行代码即可。前端websocket向后端发送数据使用方式。为什么要配置两个地址呢?

2024-01-12 11:21:17 2794

转载 elment-ui改变el-input框的样式(去掉边框)

el-input v-model="username" placeholder="请输入用户名" class="pass_input" >是el-input的input的css类名。

2024-01-10 17:04:34 839

原创 elementUI点击el-card选中变色,且点击别的空白处不变色

其实这里的也可以换成普通的标签,只需要给该指定好一个css即可。的方法,而不是我们想调用的原生click方法。(具体查看“@”在vue标签中的应用)其中el-card是自带的css样式,浏览器F12开发者模式可查。@click.native是在vue中,避免vue父模块调用成了vue成子模块中的。(普通元素类似input或button按钮不用。由于div不支持:focus伪类,可通过增加。="1",直接使用:focus)属性使其支持css伪类。

2024-01-09 19:24:06 1112 1

转载 http、socket、tcp、udp的区别及四层/七层网络协议

但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。(http协议最显著的特点是它是一种无状态连接,客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接,是一种“短连接”。可以说,现在几乎网络上所有的通信,底层都是通过socket完成的,一切皆Socket。不会直接去调用tcp udp,而是通过他们封装好的接口。

2023-12-19 18:03:53 264

转载 Redis RDB与AOF持久化、RESP 协议和ReWrite重写缩减体积

Redis 的 RDB 持久化机制简单直接,把某一时刻的所有键值对以二进制的方式写入到磁盘,特点是恢复速度快,尤其适合数据备份、主从复制场景。但如果你的目的是要保证数据可靠性,RDB 就不太适合了,因为 RDB 持久化不宜频繁触发,如果 Redis 触发 RDB 后又有新的数据写入,且还没来得及触发下一次 RDB 就宕机了,中间的数据就会丢失。在这种场景下,我们就急需一种增量备份的方式,只记录上一次 RDB 到现在为止所有的变更记录就好了,相较于全量备份,增量备份的数据量就小得多了。所以,Redis 还提

2023-12-15 15:08:21 205

转载 设计-mysql的Timestamp和Datetime的字节占用之争

本篇主要针对MySQL数据库设计中,Timestamp和Datetime这2个字段类型,进行了对比和分析。从存储限制上来说,虽然Datetime字段类型多占用了1些存储空间,但是却可以存储足够大的时间范围,适应性和可控性都Timestamp要强。然而Timestamp字段类型的存储,几乎就等于是Int(有符号)类型的存储。

2023-12-11 22:55:38 293

转载 git清除历史提交记录操作

有时候在提交代码时,不小心提交了敏感数据,如账号密码什么的,这样在历史记录中就可以查看到,这样很不安全,所以就需要吧历史提交记录删了,变成一个新的仓库。一般情况下,如果是清理master分支的话, gitlab默认中会是受保护的, 不允许强制提交。1.创建一个新的分支(孤儿分支)5.重命名创建的分支为删除的分支。4.删除需要替换的分支。6.强制提交到远程仓库。开启允许强制推送即可。

2023-11-30 18:25:33 574

转载 vue 后端返回二进制流文件,前端如何实现导出下载(excel)?

ArrayBuffer 和 Blob一样,都是二进制数据的容器,而ArrayBuffer相比更为底层,他可以去操作去修改这些二进制值,这两者之间也是可以互转的。blob类型只有slice方法,用于返回一个新的 Blob对象,包含了源 Blob对象中指定范围内的数据。对比发现,ArrayBuffer的数据,是可以按照字节去操作的,而Blob的只能作为一个整的对象去处理。对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。对象用来表示通用的、固定长度的原始二进制数据缓冲区。

2023-11-23 21:09:15 2100

转载 vue(js)如何定义:全局变量、全局方法

全局变量定义一个专用模块来配置全局变量,然后通过export暴露出去,在需要的组件引入global.vue// 定义一些公共的属性和方法consthttpUrl =// 暴露出这些属性exportdefaulthttpUrl,引入及使用script// 导入共用组件importglobalfromexportdefaultdata () {return//使用globalUrlglobalhttpUrl

2023-11-14 15:01:03 640

原创 Redission 解锁unlock异常:attempt to unlock lock, not locked by current thread by node id的解决方案

redission解锁异常:Redission中的"attempt to unlock lock, not locked by current thread by node id"

2023-11-03 02:28:11 1658

原创 vue的v-for中循环修改变量(this.xxx)的给子组件传值覆盖重复的问题

vue的v-for是最后统一调用给子组件传值,而不是每次执行就调用传值一次!所以变量会在被传值到子组件之前,会被一直修改 list.length 次。而底层逻辑应该是就是“浅拷贝”变量,即引用地址都是指向那同一个地址。使用v-for,其中需要根据不同的item修改某个变量(this.xxx),然后向子组件中传值,但是发现传到子组件中的。我们循环qsList,其中是我自定义的一个组件,想向该子组件中传值。每次都是新的局部变量。

2023-10-20 15:31:05 739

转载 js中函数的参数是“函数”

①. 将函数作为另一个函数的参数使用,只需要在调用另一个函数时,将函数作为参数传递进去。另一个函数已经完成对传进来函数的调用。②. 同时需要注意的是:在js中,函数也是对象,所以是引用传地址,函数名就是指向该对象的地址,所以将函数作为参数的时候,只需要将函数名写入即可。特别说明:这里的函数作为另一个函数的参数使用,也就是闭包的使用,可以访问函数内部的变量。

2023-10-19 16:02:54 225

转载 Linux定时任务执行磁盘使用率监控检查邮件告警

【代码】Linux定时任务执行磁盘使用率监控检查邮件告警。

2023-10-17 13:25:26 167

转载 elementui——el-tabs固定高度&内容超出高度可滚动条

el-tab-pane是每一个tabs内容的容器,这这里设置的高度才是跟屏幕高度一样的。不需要配置“class=...”,也不需要配置.el-tabs–card是外层。

2023-10-13 15:05:58 2659

原创 nginx部署,可以访问首页index,但是不能直接访问其他路径

nginx部署前端项目,访问网站首页没问题,即网站根目录。xxxxxx.com直接访问其他目录时,报404。

2023-10-09 16:32:59 1829

转载 vue的sync语法糖的使用(组件父子传值)

不是说不可以修改父组件传递到子组件的值吗?有些时候子组件需要修改父组件传递过来的prop,要去改变父组件的状态的时候就需要使用aync。正常情况下,确实不可以去修改父组件传递给子组件中的值!但是有些时候我们又需要去修改父组件传递给子组件中的值,我们可以这样来做?它可以去更新父组件中的ishow,将它的值更改为false。有的同学会说:我不使用sync可以更改吗?sync修饰符可以双向绑定父子组件中的数据。点击子组件的按钮,也将子组件隐藏。点击父组件的按钮,隐藏子组件。我们的子组件中有这样一行代码。

2023-09-26 16:11:24 242

转载 vue的el-table实现拖拽排序效果(vuedraggable、Sortable.js)

是一款优秀的js拖拽库,支持IE9及以上版本IE浏览器和现代浏览器,也可以运行在移动触摸设备中,不依赖jQuery,支持AngularJSReactVue框架和任何CSS库,如bootstrapelementUI,可以用来拖拽divtable等元素。

2023-09-08 13:14:30 3533 1

转载 MyBatis-Plus——超详细讲解配置文件

在我们的【MyBatis-Plus】中有许多【配置】,也就是当我们需要用到的时候,会在配置文件中进行编写的属性,本篇博客将会讲解这些配置的【作用】,以及简单【使用】。

2023-09-05 18:38:55 11761

转载 yarn.lock、package-lock.json、npm-shrinkwrap.json的区别

(比如执行yarn upgrade vue时vue:2.6.5的包会下载2.6.5的包,vue:^2.6.5的包会下载2.6.10最新的包,如果yarn upgrade vue@版本号就会下载对应版本的包),会按照语义版本控制规则(在下面会解释)下载最新的依赖包并且构建为依赖关系树,也就是把共有的部分提取出来。到代码托管平台是有争议的,因为提交了可能依赖会有地雷,不提交依赖关系可能会出错,一般来说是应该提交的。版本号的vue包(只限定于没有lock文件,有lock文件会根据lock中的路径下载对应版本)。

2023-08-22 17:28:00 352

转载 java的BigDecimal也会存在丢失精度的问题

务必使用(1.01),或者使用————而不要使用查看源码可以知道,的底层是如下图,源码中 “是把double先转换成字符串,再转BigDecimal”。源码文档中也说明了参数直接为double的精度问题。第二句中说了建议使用的方式,而不要使用而且最后一句也说了建议使用BigDecimal.valueOf(double)方式;

2023-06-28 17:24:32 2167

转载 数据库的bigint对应java的Long的一个小细节(BigInteger)

在开发时 bigint 对应 Long 才对,但是今天却出现了bigint对应。这里有一个小细节就是关于mysql数据库中 bigint的对应问题。<--> Java的 java.math.BigInteger。<--> Java的 java.lang.Long。bigint则变为了 BigInteger。

2023-06-28 14:46:37 1853

转载 JPA踩坑记:Spring Data Jpa 原生SQL联表查询返回自定义DTO

(推荐)该方式最直观!!推荐!!!YyyDto是interface接口,而不是class实体类ps: 这里返回的是JPA生成的YyyDto的代理类,是可以直接json序列化成json字符串的接口定义// 只需要有get方法即可,注意命名要规范查询接口/***/// 这里可以用HQL查询,也可以用原生SQL查询,YyyDto是一个接口,这里返回的是JPA生成的YyyDto的代理类// 查寻出的字段命名要规范,否则与接口中的get方法对应不上1")。。。。。。

2023-06-27 17:33:29 1648

原创 自定义修改Typora原生默认github风格样式

使用的时候,想要自定义一些颜色、字体,或者修改一些设置,这个时候需要修改或者自己编写css文件。修改涉及的样式:① 目录② 块应用我还是比较喜欢原生自带的默认样式(github样式),所以参考着“drake样式”(),修改了一下。网站中的比较旧,建议点进中去取得最新版本的css。

2023-06-14 15:23:25 1571

转载 java方法中return 、break和continue的区别和作用

不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。1.return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。2.continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。

2023-06-13 16:54:46 410

转载 MySQL设置事务自动提交(开启和关闭)

MySQL 默认开启事务自动提交模式,即除非显式的开启事务(BEGIN 或 START TRANSACTION),否则每条 SOL 语句都会被当做一个单独的事务自动执行。但有些情况下,我们需要关闭事务自动提交来保证数据的一致性。下面主要介绍如何设置事务自动提交模式。在 MySQL 中,可以通过 SHOW VARIABLES 语句查看当前事务自动提交模式,如下所示:结果显示,autocommit 的值是 ON,表示系统开启自动提交模式。

2023-06-02 19:32:44 1055 1

原创 Springboot Security 认证鉴权——使用JSON格式参数登录

在 中,默认的登陆方式是以表单形式进行提交参数的。可以参考前面的几篇文章,但是在前后端分离的项目,前后端都是以 JSON 形式交互的。一般不会使用表单形式提交参数。所以,在 中如果要使用 JSON 格式登录,需要自己来实现。那本文介绍两种方式使用 JSON 登录。1. 通过源码分析可以知道(打断点,往前捋),登录参数的提取在 过滤器中提取的,因此我们只需要模仿过滤器重写一个过滤器,替代原有的过滤器即可。 的源代码如下:重写其中的attemptAuthentication方法,默认表单认证,需要修改为兼

2023-05-09 17:41:12 2457 1

转载 Springboot JPA不用@Repository注解

在springboot+jpa的项目中,dao层只要实现JpaRepository接口就可以达成mybatis中注解@Repository+继承通过mapper的效果。网上找了好久,都没找到具体为什么jpa不用@Repository的原理,根据查到的资料推测应该要去解析spring本质才可以彻底理解,但实在没时间了,只能暂时这样了。继承了Repository接口的接口或者类,都相当于使用了@Repository注解,继承。根据接口的本质是类,注解的本质是一个接口。是注解的@Repository,

2023-04-24 12:55:58 244

转载 SpringSecurity——BCryptPasswordEncoder加密和对密码验证的原理

BCryptPasswordEncoder使用哈希算法+随机盐来对字符串加密。因为哈希是一种不可逆算法,所以密码认证时需要使用相同的算法+盐值来对待校验的明文进行加密,然后比较这两个密文来进行验证。BCryptPasswordEncoder在加密时通过从传入的salt中获取real_salt用来加密,保证了这一点。

2023-04-21 14:40:45 2614

空空如也

空空如也

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

TA关注的人

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