自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我就说我500的博客

分享一些开发技巧

  • 博客(36)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 分析并复现Apache核弹级漏洞,利用Log4j2使目标服务器执行任意代码

12月9日晚间,ApacheLog4j2被曝光存在严重漏洞,可以随意执行任意远程代码,本贴将详细分析事故原因及实战复现此漏洞!一.事件详情1.事件经过2021年12月9日,国内多家机构监测到Apache log4j存在任意代码执行漏洞,并紧急通报相关情况。由于ApacheLog4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。该漏洞CVSS评分达到了满分10分,影响全球一大半的互联网企业,包括百度、苹果等企业都被爆出存在该漏洞,众多媒体将这个漏洞形容成“史诗级”“核.

2021-12-11 21:16:56 6534 3

原创 SpringBoot字段注入和构造函数注入的区别

在SpringBoot中,我们可以使用@Autowired注解来实现依赖注入,即让Spring容器自动为我们的类提供所需的对象。有三种常见的注入方式:字段注入,Setter方法注入和构造函数注入。字段注入:直接在类的属性上使用@Autowired注解,无需编写额外的代码。Setter方法注入:在类的Setter方法上使用@Autowired注解,需要编写相应的Setter方法。构造函数注入:在类的构造函数上使用@Autowired注解,需要编写相应的构造函数。下面是一个简单的例子,假设我们有一个。

2023-04-14 14:57:33 1889

原创 Synchronized锁失效的几种情况

Synchronized锁失效的几种情况

2022-10-27 13:56:47 4608

原创 Git 回退(Revert)操作后无法重新合并的问题

git revert后无法重新提交

2022-10-20 10:29:26 6147 1

原创 阿里云DDNS动态绑定域名与IP实现远程调试远程办公

之前申请了公网IP,这样调试接口的时候可以直接远程调试,但因为申请的公网IP会随时变化,所以使用阿里云DDNS服务,随时绑定公网IP,直接域名访问服务。1.创建阿里云账号和访问密钥(AccessKey)AccessKey是您访问阿里云API的密钥,使用阿里SDK进行操作必须先获取AccessKey!创建地址:https://usercenter.console.aliyun.com/因为主账号权限过于强大,所以尽量使用子账号AccessKey并赋予需要使用的权限,这里我们点击“开始使用子账号A.

2022-05-18 17:07:01 5607

原创 解决Maven打包的文件不带依赖项

学习笔记,参考别人的教程Maven打包时不会自带依赖项Jar,导致运行失败,Pom文件直接加入以下语句即可: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> &lt.

2022-04-01 14:21:21 5390

原创 SQL语句查询取得表结构

此代码复制他人文档,仅作学习记录语句:SELECT COLUMN_NAME 列名, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 能否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 字段注释 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '表名' AND table_schema = '数据库名' 如果是Navicat,.

2022-03-29 09:18:26 2122

原创 Spring事务失效场景总结

之前面试时问到这个问题,明明以前学习过但是基本都忘记了,在此记录(文章部分内容参考IT老哥B站视频)。1、事务方法的访问修饰符非publicJava访问权限修饰符共有:private、default、protected、public,Spring中,仅被public修饰的方法事务才会生效,如果方法被错误的访问权限修饰符修饰,事务不生效。@Servicepublic class UserService { @Transactional private void add(UserMo.

2022-03-27 13:05:30 931

原创 SpringCloudGateway网关限流并返回自定义异常信息

1.实现Gateway网关限流SpringCloudGateway自带了 RequestRateLimiterGatewayFilterFactory 限流方案,依赖redis与内置的RedisRateLimiter过滤器进行限流操作,默认限流算法为令牌桶算法。第一步:引入redis依赖引入如下redis依赖或其他依赖:<dependency> <groupId>org.springframework.boot</groupId> <arti

2022-03-11 08:22:49 5461

原创 多线程简单概念的个人理解

之前了解这些概念的时候不是十分理解,只是大概知道怎么回事,晚上很多教程都是说定义,乍一看需要花时间去理解,在这里谈谈我自己的理解(偏白话,不谈具体概念)1.乐观锁悲观锁乐观锁乐观锁其实就是不上锁,只是加一些逻辑判断防止资源冲突覆盖,比如从网上找来的图:如果双方在报名的时候数据是相同的,原数据都是5,此时客户端1更新,将数据更新为6,但此时客户端2并不知道数据已被更新,拿着过期的数据5去更新数据库,这时候就会将客户端1的数据覆盖掉,造成覆盖错误.再举个例子:我在网上上报了一些资料,发布之后发.

2021-12-31 11:36:36 585

原创 SpringBoot整合Sentinel实现服务限流、熔断

Sentinel是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。详细介绍请看:https://github.com/alibaba/Sentinel/wiki一、Sentinel服务的安装1、Sentinel下载项目地址:https://github.com/alibaba/SentinelSentinel结构简介:Sentinel整体项目由多个组件构成,但主要分为sentinel-co.

2021-04-21 16:39:38 4398 2

原创 MySQL主从复制配置(读写分离准备工作)

最近在学习ShardingSphere的分库分表和读写分离,其中读写分离部分涉及到MySql的主从复制,实验成功后在这里记录一下配置流程!一、读写分离概念1、读写分离原因:首先读写分离字面意思就是将数据库的读写操作分开,数据库写操作全部在主数据库完成,随后MySql将数据主从复制后,所有读操作均在从数据库进行完成。因为数据库读操作比较很节省时间,但是写操作非常较耗时,此时如果将数据库读写分开操作进行,就可以避免写入操作时影响读取速度。2、读写分离原理:Mysql读写分离首先需要将以前的但数据库.

2021-03-13 16:13:21 241

原创 SpringBoot中@Configuration和@Bean和@Component相同点

之前一直有疑惑,为什么SpringBoot中有些组件注入需要使用@Bean,有些需要使用@Component,有些使用@Configuration,今天做了一些实验,解除了疑惑结论:@Configuration和@Bean和@Component在注入对象时大体上是没有区别的,都可以为Spring容器注入一个对象(底层对对象的处理在是有很大区别的,详细不在此处解释)那么他们之间@Bean注解的作用是将方法返回值作为一个bean注入到Spring容器中,方法名即为bean的名称如图所示,该bean.

2020-12-21 10:59:04 1000 1

原创 SpringBoot中注解数据校验,分组校验,自定义注解校验,同一异常处理(JSR303规范)

在我们实际编程中,几乎都会使用到后端数据校验功能,是SpringBoot中,更是简化了这一操作,让我们来简单看一下!本教程仅作为我个人的学习记录,避免遗忘,方便下次快速使用,如有错误,请指出,谢谢观看~一、SpringBoot注解校验简单使用...

2020-11-19 15:52:26 1045

原创 SpringSecurity整合SpringBoot全干货使用教程

本文没有任何原理解释,没有任何使用讲解,不适合初学者入门,适合已学过后的方法笔记以便于下次快速使用~如有错误,请指出!

2020-11-09 22:20:56 565 1

原创 Ajax上传文件(视频),并获取上传进度、上传速度和剩余时间。

1.Ajax上传文件如果动态上传文件并获取信息,则需使用Ajax上传。html代码:<form id="fileUpload" enctype="multipart/form-data"> <input type="file" name="file">选择文件</form><input id="submit" type="button" value="确认上传" />Js代码: $("#submit").click(function

2020-10-19 16:01:42 3394

原创 如何把开发组长气的打人(Java中换行符的骚操作)

先上效果图:可以看到,我们将代码注释掉之后,输出语句依旧执行,代码没有任何问题。这里就涉及到了一个特殊字符: \u000d大家可以将这个字符复制到注释后面,观察程序运行效果,发现注释掉的语句仍然可以正常执行!所以这就有了很多骚操作我这里先使用一个冒泡排序算法来代替项目中的代码逻辑:1.我们可以将程序中的一些关键业务代码“注释”掉:2.我们甚至可以将小括号大括号和关键字“注释”掉:3.甚至连关键字,变量声明,特定的一些结构我们都可以“注释”掉:4.类名方法名算什么,统统注释掉:

2020-09-15 15:40:53 1188 7

原创 HTML的radio点击选中再点击取消(Jquery)

复制以下代码就可以,点击时选择框的切换是由浏览器决定的,所以网上很多代码都会出现多次点击才可以取消的问题(使用cheched做标志位,其他单选内框点击后没有取消标志位) $("input:radio").click(function(){ var checkedState = $(this).attr('checked');//记录当前选中状态 if(checkedState == 'checked'){ $("input:radio").rem

2020-08-10 11:11:20 1454

原创 我的JVM学习笔记:运行时数据区(3)操作数栈详解

感谢尚硅谷宋红康老师的JVM入门到精通课程,向每一个用心做免费教课程的老师致敬!本套教程均为我学习课程之后的学习笔记,防止遗忘,并发送给大家分享,感谢大家查看~1.上次内容上次我们讲到,栈贞内部包含:局部变量表,操作数栈,动态链接,方法返回地址。在上一篇文章中,我们着重介绍了局部变量表,有兴趣的可以去查看:我的JVM学习笔记:运行时数据区(2)局部变量表详解本篇文章,让我们着重来学习一下栈帧存的包含的其他结构:操作数栈!2.操作数栈详解(Operand Stack)2.1栈的理解:栈即可.

2020-07-22 22:16:06 844

原创 我的JVM学习笔记:运行时数据区(2)局部变量表详解

感谢尚硅谷宋红康老师的JVM入门到精通课程,向每一个用心做免费教课程的老师致敬!本套教程均为我学习课程之后的学习笔记,防止遗忘,并发送给大家分享,感谢大家查看~1.虚拟机栈详解本章衔接上篇文章:我的JVM学习笔记:第三章——运行时数据区(1),有需要的请点击查看。栈贞的内部结构栈贞内部包含:局部变量表(Local variables)操作数栈(operand Stack) ( 或表达式栈)动态链接(Dynamic Linking) ( 或指向运行时常量池的方法引用)方法返回地址(Re.

2020-07-19 20:22:28 547 1

原创 多线程实战——Callable接口在项目中的实际应用

1.Callable接口介绍我们在实现多线程的时候一般都是实现Runnable接口,这种方式简单高效,但缺点也同样明显,就是无法在线程结束后返回相应结果,去过需要返回结果,只能手动在多线程中使用公共变量进行传递,容易发生线程安全问题,所以,现在让我们来看一下可以返回信息的Callable接口的多线程具体使用!Callable接口定义:public interface Callable<V> { V call() throws Exception;}观察发现:与Runnab

2020-07-16 21:47:52 1196

原创 多线程学习笔记——安全退出线程

1.stop()方法退出线程线程退出有多种方法,我们先来演示线程.stop()方法,此方法用于强制结束一个线程threadObj.stop();我们现在来看一下示例代码:public class ThreadTest { public static void main(String[] args) { Thread thread = new Thread( () -> { int i = 0,j=0; try {

2020-07-08 22:33:30 534

原创 MySQL性能优化——事务管理基本概念

本教程仅为本人的学习笔记,如有错误,请指出,欢迎观看~一.事务管理的概念事务的概念: 一个事务是对数据库进行读和写的一个序列。事务管理的目的:1、为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法, 以防止彼此的操作互相干扰。总结来说:事务的目的就是要提供3种方法: 1.失败恢复方法2.保持一致性的方法3.操作隔离的方法。成功情况下将数据永久保存,失败情况下.

2020-06-15 21:42:04 231 3

原创 MySQL性能优化——索引基本原理

一、 索引简介1. 索引的作用MySQL索引的建立对于MySQL的高效运行是很重要的,创建索引后,数据库就不会进行全表查询,而是通过了类似于目录检索的方式来进行查询,直接定位到相关数据,索引可以大大提高MySQL的检索速度,比较常用的有:主键索引,唯一索引,普通索引等。本质:索引是帮助MySQL高效获取数据的排好序的数据结构。2. 索引的创建方式#表结构存在时创建索引CREATE INDEX indexName ON mytable(username(length)); #或 ALTER t

2020-06-10 14:14:04 404 1

原创 Java将Word转为图片完美解决方案(免费无损不乱码)

本教程整理至GitHub,所使用的库文件将免费提供下载!整理地址:https://github.com/conghaoyuan/Word2Image此解决方案优点:免费(可以使用Spire.Office,这是最快速的解决方案,但是一个开发者一年5000元左右的费用实在不低)无损/简单(直接调用Office官方API,调用Office进行转换,简单代码即可搞定)此方案缺点:只能用于Windows环境服务器端需要安装Office转换思路:先将Word文档转换为PDF文档,再将PDF.

2020-06-05 11:32:36 7680 4

原创 多线程与高并发学习笔记——第二章:临界资源问题与代码同步

1. 临界资源问题演示我们来模拟一个场景:5个售票员同时售卖100张票,卖完为止!代码演示:public class ThreadTest { public static void main(String[] args) { Runnable r = new Runnable() { int i = 100; @Over...

2020-04-23 23:12:58 412

原创 Java开发技巧——流式编程StreamAPI

1.什么是StreamAPI和上次文章中介绍的Lamda表达式一样,StreamAPI是Java8中添加的一个新特性,可以使我们以声明的方式非常快速的操作集合,省去非常多的无用代码,现在让我们来举个例子!目前有一个字符串数组,记录了小组内所有人的英文名,我们需要先将字母“B”开头的名字筛选出来,全部转换为小写,清切去重复后输出!我们先使用for循环方式实现:public class Str...

2020-04-06 23:16:15 547

原创 Java开发技巧——Lamda表达式实现接口

Lamda作为Java8引入的语法,不会的话也不影响我们的正常开发,但如果学会的话,可以极大地减少我们的无用代码数量,让我们一起来看一下!1.Lamda表达式常用情景:实现Runnbale接口创建线程我们经常可以在编程中看到如下代码:public class test { public static void main(String[] args) { Thread thread...

2020-04-03 20:17:19 3970 1

原创 Ztree组件右键弹出菜单位置显示错误

做项目的时候用到了Ztree组件来维护树形结构,没想到碰到了一个问题:Ztree组件的右键菜单无法正确显示,位置总是不正确这个是刚刚整合进去的,以前没有前端页面的时候是完全好用的!在元素上点击右键,会发现弹出的菜单总是在右下方显示!后来发现,画红色箭头区域的宽高与画蓝色距离差的位置大致相同也就是说:正好差出了一个上下边框的问题所以我就怀疑,会不会是布局定位的问题,因为以前没有前端模...

2020-02-28 20:16:12 612 1

原创 多线程与高并发学习笔记——第一章:线程的基本概念与使用

线程的基本概念与使用本章包含知识点:线程与进程的关系,串行并发并行的关系,线程的简单创建与使用1. 进程和线程的概念**进程:**一个程序运行所占用的资源的描述,一个程序被运行,系统就会为他开辟一个进程,是资源分分配的最小单位。进程之间不可相互通信。**线程:**一个进程中有多个线程,在一个进程中可以建立新的现成线程是程序执行时的最小单位。进程包含线程,如果进程中的所有线程都没有了,进程就...

2020-02-22 22:48:24 185

原创 设计模式学习笔记——代理模式

代理模式1. 代理模式定义代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。换句话说:当我们要扩展一个类,使其功能更加丰富时,我们可以不直接修改这个类,而是创建代理对象,使用代理对象中调用这个类,并添加而外的功能,这样就可以不修改这个类而增加功能,常用于权限控制,日志记录等...

2020-02-21 11:35:27 197

原创 我的JVM学习笔记:第三章——运行时数据区(1)

我的JVM学习笔记:第三章——运行时数据区(1)感谢尚硅谷宋红康老师的JVM入门到精通课程,向每一个用心做免费教课程的老师致敬!本套教程均为我学习课程之后的学习笔记,防止遗忘,并发送给大家分享,感谢大家查看~本章包含知识点:运行输数据区概述,程序计数器详解,虚拟机栈概述,虚拟机栈的执行过程,虚拟机栈中的StackOverFlowError和OutOfMemoryError,以及如何设置虚...

2020-02-17 17:11:41 318

原创 我的JVM学习笔记:第二章——类加载子系统

我的JVM学习笔记:第二章——类加载子系统感谢尚硅谷宋红康老师的JVM入门到精通课程,向每一个用心做免费教课程的老师致敬!本套教程均为我学习课程之后的学习笔记,防止遗忘,并发送给大家分享,感谢大家查看~本章包含知识点:类的加载过程,不同类加载器详解,双亲委派机制/沙箱安全机制,自定义类加载器!一、类加载器概念java中的类要加载到jvm中才能使用,那么负责把java类从硬盘或网络等加...

2020-02-11 15:06:53 408 1

原创 我的JVM学习笔记:第一章——JVM概述

我的JVM学习笔记:第一章——JVM概述感谢尚硅谷宋红康老师的JVM入门到精通课程,向每一个用心做免费教课程的老师致敬!本套教程均为我学习课程之后的学习笔记,防止遗忘,并发送给大家分享,感谢大家查看~一.、JVM概念JVM是Java Virtual Machine(Java虚拟机)的缩写,引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译,一个字节码文件可以直接跨平...

2020-02-09 23:05:55 777

原创 Java的Http网络通讯(Post,Get)

Java的Http网络通讯(Post,Get)我就是我网络团队编辑队长:我就是我联系方式:QQ1305524514本文档为本人学习总结,义务提供,不作为商用,侵权请联系删除本文档部分内容为转载,转载处在下会标明服务器的简单搭建首先让我们来搭建一个简单的JSP网站以上网站在我们进行访问时,返回我们的访问信息,并返回使用的方法!例如:提交的用户名为wojiushiwo,密码为12...

2019-03-31 20:44:33 777

原创 C#正则表达式RegularExpression相关知识(Regex类使用详情)

C#正则表达式相关知识我就是我网络团队编辑队长:我就是我联系方式:QQ1305524514本文档为本人学习总结,义务提供,不作为商用,侵权请联系删除本文档部分内容为转载,转载处在下会标明1. 原样匹配任意字符:原样匹配任意字符例如:123,会匹配一串字符中是否有123字符,通常用作格式识别!2.转义字符(转载)\b匹配一个单词边界,也就是指单词和空格间的位置。例如,“...

2019-03-05 22:09:11 2011

SpringBoot中JSR303的示例代码

详细介绍了普通校验,分组校验,自定义注解校验等,全局异常处理,代码均为我自己编写,是我的学习笔记,并且发表了相关子蛾子,可以配合我的帖子查看,是一些简单的相关示例代码

2020-11-19

Wrod转图片代码.rar

将Word文档转为PDF或图片,需要配合Jacob的jar包使用

2020-06-05

Word转图片.rar

其中包含Jacob的Jar包以及Dll文件和一些工具类Jar包,用于将Word文档转换为相应图片。

2020-06-05

CgLib动态代理所需的jar

cglib动态代理技术所需要的Jar包,注意只需要一个jar就可以! cglib-nodep-2.2.2.jar 这个包里面包含了asm的引用,无需在引用!

2020-02-21

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

TA关注的人

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