自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(216)
  • 资源 (1)
  • 收藏
  • 关注

原创 doc转html参考

参考:https://github.com/mwilliamson/mammoth.js?tab=readme-ov-file参考:前端玩Word:Word文档解析成浏览器认识的HTML_前端解析word成html-CSDN博客

2024-04-19 21:34:15 170

原创 java发送短信

参考"发送短信"这一块的代码。

2024-04-15 17:21:39 177

原创 ThreadLocal:实现线程间变量隔离

虽然不同的线程之间ThreadLocal这个key值是一样的,但是不同的线程所拥有的ThreadLocalMap是独一无二的,也就是不同的线程间同一个ThreadLocal(key)对应存储的值(value)不一样,从而达到了线程间变量隔离的目的,但是在同一个线程中这个value变量地址是一样的。ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。b. ThreadLocal的作用。

2024-04-14 22:23:00 573

原创 Spring的事务传播机制(通俗易懂)

参考:Spring的事务传播机制(通俗易懂)_spring事务传播机制-CSDN博客

2024-04-14 22:05:33 274

原创 Mysql的事务隔离级别以及事务的四大特性。

MySQL 的事务隔离级别是数据库管理系统中的一个重要概念,它决定了事务如何隔离和影响其他并发事务。MySQL 支持四种事务隔离级别,分别是:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化(SERIALIZABLE)。在InnoDB存储引擎中,通过多版本并发控制(MVCC)来实现这一隔离级别,从而避免了脏读和不可重复读,但仍然可能出现幻读。在这个级别下,一个事务可以读取另一个尚未提交的事务的数据。

2024-04-14 20:10:32 254

原创 spring boot学习第十七篇:OAuth2概述及使用GitHub登录第三方网站

那么问题就来了,如果在你注册的网站中有某些个网站的系统设计不够严谨和安全,数据库的用户信息使用明文存储,那么一旦这个网站遭到攻击或者是数据泄露,那么一些不怀好意的人就可能通过使用这些泄露的数据“撞库”,刚好就登录了你使用相同账号密码注册的其他网站。OAuth 是一个开放的非常重要的认证标准/协议,允许用户授权第三方应用访问其存储在其他网站上的资源,而无需将用户名密码提供给第三方网站的开放标准/协议。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求"服务提供商"提供服务,其实不存在授权问题。

2024-04-13 21:11:56 916 1

原创 ubuntu安装并使用Memcached

发现这种安装方式无厘头,搞不懂安装到哪去了,无法执行./memcached命令,那换一种方式吧。客户端来与Memcached服务交互。在telnet会话中,你可以使用Memcached命令存储和检索数据。我使用的是Memcached 1.6.22这个版本。使用Memcached。1、选择较新的版本安装。

2024-04-09 13:13:54 325

原创 设计模式实践

定义一个事件: 实现一个继承自,并且写相应的构造函数;定义一个事件监听者:实现接口,重写方法;使用事件发布者发布消息: 可以通过的方法发布消息。// 定义一个事件,继承自ApplicationEvent并且写相应的构造函数// 定义一个事件监听者,实现ApplicationListener接口,重写 onApplicationEvent() 方法;@Component//使用onApplicationEvent接收消息@Override。

2024-04-08 19:56:04 1132 1

原创 spring获取bean

这里我列举2种方法,其它方法可以自行学习。

2024-04-08 17:16:37 534

原创 spring boot学习第十六篇:配置多数据源

然后查看ds0库的博客数据。2.1调用POST接口。2.2改动数据源为BJ。然后调用接口添加数据。

2024-04-06 18:24:59 191

原创 spring jdbc配置多数据源

2.2往另外一个库里插入数据。2.1往其中一个库插入数据。往厦门库里添加了一条数据。

2024-04-06 17:28:18 131

原创 AES加密

密钥交换算法是指在不安全的通道上,通过某种算法交换一个密钥,常用的有Diffie-Hellman(DH)算法、椭圆曲线Diffie-Hellman(ECDH)算法等。消息摘要算法是一种单向加密算法,将任意长度的数据转换成固定长度的输出,常用的有MD5、SHA-1、SHA-2等。数字签名算法是将消息或数据进行哈希计算,然后用私钥签名,验证签名时使用公钥进行验证,常用的有RSA、DSA等。非对称加密算法使用一对密钥(公钥和私钥)对数据进行加密和解密,常用的有RSA、DSA、ECC等。3、确保数据的完整性。

2024-03-28 18:08:30 332

原创 计算机进制转换:二进制、八进制、十进制、十六进制。原码、补码、反码。

由0,1组成,运算规律是逢二进一,计算机只能识别二进制表示的数据;由0、1、2、3、4、5、6、7组成,运算规律是逢八进一;由0,1,2、3、4、5、6、7、8、9组成,运算规律是逢十进一;由数字0~9以及字母A,B,C,D,E,F组成,运算规律是逢十六进一;

2024-03-26 10:02:35 791

原创 二进制、八进制、十进制、十六进制分别用字母什么表示?

十六进制用字母H来表示,简写为hex,在c语言中用添加前缀0x以表示十六进制数。它由十六个数码:数字0~9加上字母A-F组成(它们分别表示十进制数10~15),十六进制数运算规律是逢十六进一。八进制用O表示,缩写Octal或OCT或O,八进制的基数R=8=2^3,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。四进制数用Q表示,是以4为基数的进位制,以 0、1、2 和 3 四个数字表示任何实数。二进制用B表示,其中B是英文二进制Binary的首字母。

2024-03-25 18:28:53 546

原创 spring boot学习第十五篇:分库分表实战

先了解分库分表的一些概念,参考:【MySQL】MySQL分库分表详解[通俗易懂]-腾讯云开发者社区-腾讯云然后觉得哔哩哔哩里讲的挺好的,要试一下:1、海量数据冲击下的MySQL优化方案_哔哩哔哩_bilibili还有博客:https://blog.51cto.com/u_14904176/5959319

2024-03-22 16:36:46 187

原创 React16和Antd3学习第二篇--代码只为我所用

在《React16和Antd3学习第一篇》之后,我决定把该去掉的代码都去掉,然后做一个属于我自己博客业务的,对接后台添删改查接口的,且具有真实登录意义的demo。

2024-03-21 17:07:16 404

原创 React16和Antd3学习第一篇--本地启动demo

在github.com上搜索react,发现有个代码仓得到了4.9K的赞,于是拿来试下,

2024-03-21 16:22:03 244

原创 spring boot学习第十四篇:使用AOP编程

(1)AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。(2)利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。一个 AOP 的使用场景:假设一个已经上线的系统运行出现问题,有时运行得很慢。为了检测出是哪个环节出现了问题,就需要监控每一个方法的执行时间,再根据执行时间进行分析判断。

2024-03-20 17:54:02 1135

原创 使用quartz

1、

2024-03-20 16:27:49 311

原创 使用aop做权限控制

7.1没权限的情况,jack没权限访问这个接口。7.2有权限的情况,heming有权限。

2024-03-20 16:18:05 125 1

原创 kafka2.x版本配置SSL进行加密和身份验证

与步骤 1 中存储每台机器自己的身份的密钥库不同,客户机的信任库存储客户机应信任的所有证书。您可以使用单个 CA 对集群中的所有证书进行签名,并让所有计算机共享信任该 CA 的同一信任库。因此,只要 CA 是真实且受信任的颁发机构,客户端就可以高度保证它们连接到真实的计算机。部署一个或多个支持 SSL 的代理的第一步是为集群中的每台计算机生成密钥和证书。完成第一步后,群集中的每台计算机都有一个公钥-私钥对,以及一个用于标识计算机的证书。生成的 CA 只是一个公钥-私钥对和证书,它旨在对其他证书进行签名。

2024-03-19 11:50:50 1208

原创 Java 的强引用、弱引用、软引用、虚引用

弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之 关联的引用队列中。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。

2024-03-18 15:49:04 531

原创 使用Arthas

Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6+, 采用命令行交互模式,可以方便的定位和诊断 线上程序运行问题。Arthas 官方文档十分详细,详见:https://alibaba.github.io/arthas。解压之后,然后再执行。

2024-03-18 09:59:20 175

原创 JAVA类加载机制

clinit>()方法是由编译器自动收集类中所有类变量的赋值动作和静态语句块(static块)中的语句合并产生的,编译器收集的顺序一定是先变量赋值,再静态语句(无论在源文件中出现的顺序如何)故在静态语句块中可以访问到类变量的初始化值了。(3)准备阶段——>变量已经赋过一次系统要求的初始值,而初始化阶段——>赋程序员给定的初始值(static final修饰的除外)——>初始化过程是执行类构造器()方法的过程。加载——>验证——>准备——>解析——>初始化——>使用——>卸载。

2024-03-15 18:21:16 332

原创 Apache zookeeper kafka 开启SASL安全认证

Kafka是一个高吞吐量、分布式的发布-订阅消息系统。Kafka核心模块使用Scala语言开发,支持多语言(如Java、Python、Go等)客户端,它可以水平扩展和具有高吞吐量特性而被广泛使用,并与多类开源分布式处理系统进行集成使用。Kafka作为一款开源的、轻量级的、分布式、可分区和具备复制备份的、基于ZooKeeper协调管理的分布式流平台的功能强大的消息系统。与传统消息系统相比,Kafka能够更好的处理活跃的流数据,让数据在各个子系统中高性能、低延迟地不停流转。

2024-03-13 15:40:01 1056 2

原创 VUE2学习第二篇----介绍

组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许我们使用小型、独立和通常可复用的组件构建大型应用。方法中,我们更新了应用的状态,但没有触碰 DOM——所有的 DOM 操作都由 Vue 来处理,你编写的代码只需要关注逻辑层面即可。在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例。) 然后对其进行完全控制。那个 HTML 是我们的入口,但其余都会发生在新创建的 Vue 实例内部。此外,Vue 也提供一个强大的过渡效果系统,可以在 Vue 插入/更新/移除元素时自动应用。

2024-03-11 18:23:48 767

原创 VUE2学习第一篇----安装

参考:安装 — Vue.js

2024-03-11 16:47:19 172

原创 VUE2学习第三篇----VUE实例

每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。3、除了数据 property,Vue 实例还暴露了一些有用的实例 property 与方法。当这些 property 的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。也有一些其它的钩子,在实例生命周期的不同阶段被调用,如。对象中的所有的 property 加入到 Vue 的。的函数,这给了用户在不同阶段添加自己的代码的机会。2、这里唯一的例外是使用。

2024-03-11 16:36:08 317

原创 VUE Element例子学习

然后我自己打算从0到1搞到我自己的hmblogs-ui里,复制代码后,先写登录页面,把其它代码都去掉,然后做npm install的时候,报错了。要开始对接接口,拿登录接口对接,然后开发用户分页查询添加修改删除功能。所以找了一圈资料,找到了这个博客,很合适,有例子的代码,代码简单,可以正常启动。我先安装了nodejs 12的版本,nodejs13+版本的会报错。之前参考的el-admin-web太复杂了,不是纯净的demo.执行npm命令成功了。

2024-03-08 16:22:21 257

原创 Synchronized方法锁、对象锁、类锁区别

synchronized,这个东西我们一般称之为”同步锁“,他在修饰代码块的时候需要传入一个引用对象作为“锁”的对象。

2024-03-04 14:18:41 1000

原创 JAVA计算表达式

需求:例如if(score>=85){return 1;}有这一串字符串,要执行这个字符串,如果score为86分,则能得到1;如果score为30分,则能得到4;

2024-02-29 14:12:37 119

原创 spring boot学习第十三篇:使用spring security控制权限

admin账号能使用admin接口,但是employee账号不能使用admin接口。12.2使用admin账号密码和empoyee账号密码尝试employee接口,清除浏览器缓存后,再使用employee和123456登录,则会报401。admin和employee账号都能正常访问employee接口。这里我如果用户名输入admin,密码输入123456,点击登录。9、SwaggerConfig代码如下:配置swagger。清除浏览器缓存,再使用employee账号密码登录。先试用admin账号密码登录。

2024-02-28 14:52:23 453

原创 spring工作原理

Spring提供了两种不同的容器:Bean工厂、Application Context。Bean工厂负责创建和管理单例Bean,Application Context提供了消息驱动的bean、资源访问、事件传播等丰富的功能。2、面向切面编程,AOP,在不影响原有代码和逻辑的基础上,添加额外的业务控制,例如事务、日志、权限等等。1、控制反转,IOC即Inversion of Control,对象的创建和管理工作交由容器。这篇文档写得还可以。

2024-02-27 15:06:29 370

原创 索引学习以及索引原理

1.1、最左前缀匹配原则非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。那就让指针先指向东朝向的所有房子,相当于现实生活中,找房子的人,站在该栋楼的东面看东朝向的房子,而不用关心西朝向、北朝向、南朝向的房子。b、或者要找东朝向的12楼偏中间的房子,

2024-02-26 17:23:24 168

原创 spring boot学习第十三篇:使用jsonrpc

因为我学习spring boot会有很多内容,所以和spring boot有关的文章使用的pom.xml和application.yml这2个文件的内容就全列出来,不用再单独抽出来了,单独抽出来有点麻烦也不方便学习。怎么处理呢,搜了一圈资料没解决该问题。

2024-02-19 16:38:46 459

原创 JVM调优(Window下)

查看到了是java.lang.Object[]关键字,点击了Details后,往下拉。2.2安装好MAT后,点击菜单File-->Open Heat Dump...然后选择刚才产生的hprof文件,有个Overview视图,产生OOM时,console打印了,dump文件在哪里。2、拿到hprof文件后,放到mat工具里面查看结果。我电脑里是JDK8,建议下载1.0.0的版本。1、编写代码,像下面代码这样,产生OOM,添加一个vm options,添加如下配置。这个可展开收缩的项,找到问题出在哪一行了。

2024-02-08 22:42:03 371

原创 JVM调优(ubuntu系统下)

不太好验证,写了一个死循环放在接口里,然后调用接口3次,机器直接挂掉了,没有任何的hprof文件产生。1、使用MAT查看服务是因为什么代码导致的停服。这样怎么办呢,才能验证我的这个学习需求呢?但是没有看到hprof文件,

2024-02-08 16:06:41 160

原创 spring boot学习第十二篇:mybatis框架中调用存储过程控制事务性

10、StockServiceImpl内代码改动一下,查看数据,没有id为8000的记录。

2024-02-08 11:47:25 1184 1

原创 MYSQL存储过程(含入参、出参)

2、创建存储过程,希望插入2条数据,当id不一样时,事务正常提交;当id一样时,事务回滚。id为主键,便于验证执行SQL异常(例如主键值冲突)时,事务回滚。4、调用该存储过程,当id一样时,数据不能入库,因为有SQL异常。3、调用该存储过程,当id不一样时,数据正常入库。

2024-02-08 11:25:27 309 1

原创 spring boot学习第十一篇:发邮件

【代码】spring boot学习第十一篇:发邮件。

2024-02-06 18:41:22 755

空空如也

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

TA关注的人

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