自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (5)
  • 收藏
  • 关注

原创 【正则表达式】中的“\b“

单词边界是指一个单词的开头或结尾,或者一个单词和一个非单词字符之间的位置。单词字符通常指字母、数字和下划线,非单词字符则是指除此之外的所有字符。“\b” 是正则表达式中的一个元字符,用于表示单词边界。掌握了 “\b” 的使用,可以更加精确地匹配字符串,避免出现不必要的匹配。

2023-11-03 15:30:36 2150

原创 【IDEA插件开发】RefactoringEventListener与RefactoringElementListener的区别

重构是一种改善源代码质量而不改变其功能的过程。重构可以帮助我们保持代码的整洁、简洁和易于维护。IntelliJ IDEA提供了许多内置的重构操作,例如重命名、移动、提取方法、提取常量等。重构监听器是一种特殊的接口,它可以让我们在插件中捕获和处理重构事件。通过实现重构监听器,我们可以在重构发生前后执行一些自定义的逻辑,例如更新外部设置、检查冲突、显示提示等。和。是一个全局的监听器,它可以监听所有类型的重构事件。用于获取有关所选项目中已执行重构的高级通知。

2023-11-03 14:02:29 233

原创 MySQL中使用UNION和ORDER BY的注意事项

先UNION后ORDER BY时,只需要在最后一个SELECT语句中包含ORDER BY;先ORDER BY后UNION时,由于优先级问题,需要将子查询用括号括起来,且ORDER BY后面必须有LIMIT`;

2023-04-22 21:04:30 1260

原创 使用hutool实现Date与LocalDateTime相互转化

使用hutool实现Date与LocalDateTime相互转化

2023-04-22 12:54:35 5553

转载 SpringBoot优雅停机

Spring boot 2.0 之优雅停机springboot2.3.0优雅停机Springboot2.3优雅停机方案源码解析

2022-10-11 20:05:07 191

原创 Spring-Cache整合Redis

配置类使用从数据库中查到数据后,序列化到缓存时报错:将改为:从缓存中查到数据后,反序列化时报错:原来是因为实体类中有方法,在序列化时会调用该方法,然后缓存的json中会有字段。后来反序列化时,在实体类中找不到属性,所以就报错了!实体类

2022-10-08 16:56:23 860

原创 @Future对LocalDate不生效的问题

*** 未来LocalDateMETHOD , FIELD , ANNOTATION_TYPE , CONSTRUCTOR , PARAMETER , TYPE_USE }) // 将注解标记为 Bean Validation 约束 @Constraint(validatedBy = {/*** 错误提示信息*/ String message() default "日期必须大于今天";/*** 分组信息,容许指定此约束所属的验证组* @return};/**......

2022-08-02 21:18:44 76

原创 【IDEA】Jump to Line插件

介绍Jump to Line插件允许您在调试时访问任何一行代码。将黄色箭头拖放到gutter中所需的位置,它将在那里放置一个执行点。与单步执行不同,该插件允许您从该点开始运行程序,而无需执行前面的代码(注:相当于前面的代码没有了)。虽然IDEA中点击行号就可以跳转到指定行,但还是会执行前面的代码若被忽略执行的代码中有声明变量,该变量就会被初始化为默认值在一个函数中,可以向前和向后跳转到行。Jump to Line以绿色高亮显示适合跳转的行。更改某些行可能会破坏工作流。这就是IDE将以黄色突出显示

2022-05-28 15:00:30 3172

原创 【JVM】java.lang.OutOfMemoryError: Metaspace

背景本项目有多个定时任务,且部署环境是预发布环境有一台服务器(16.50),生产环境有两台服务器(16.60、16.61),都注册在同一个xxl-job调度中心。xxl-job配置的路由策略都是"轮询"所以每次执行定时任务时,xxl-job都是先调度到预发布环境。问题之前一直都没有问题,但是05-21日例行查看昨日定时任务的执行情况,发现05-20日00:07:00定时任务[生成拓客本会话]调度成功,但执行时报错:java.lang.OutOfMemoryError: Metaspace

2022-05-24 20:34:34 687

原创 【MySQL】Deadlock found when trying to get lock; try restarting trans

初始化数据:CREATE TABLE `t_test` ( `FID` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `FCREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `FMODIFY_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_T

2022-05-17 20:57:16 1273

原创 【Mybatis】update语句返回的是匹配到的行数还是影响到的行数?

基础参考Mybatis Update操作返回值问题拓展:modify_time会更新吗?建表,插入数据DROP TABLE IF EXISTS `temp`;CREATE TABLE `temp` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `sort`

2022-05-12 19:58:57 668

原创 【hutool】使用问题

如何将Date转化为LocalDateTimepackage cn.hutool.core.date;public class LocalDateTimeUtil { /** * {@link Date}转{@link LocalDateTime},使用默认时区 * * @param date Date对象 * @return {@link LocalDateTime} */ public static LocalDateTime of(Date date) { if (n

2022-05-09 11:20:48 762

原创 【maven】查看模块之间的依赖关系

可以根据继承层级从下往上显示:最终显示结果如下:

2022-04-28 17:39:00 7271

原创 SpringBoot中@ConfigurationProperties配置多层嵌套和复杂Map

# ==================================================================================# 人员# ==================================================================================kfang.infra.person.incubate.000000.before-position-ids=0225,0226kfang.infra.pers

2022-04-28 15:07:13 4921

原创 seata

seata中文官网从v1.4.2版本开始,已支持从一个Nacos dataId中获取所有配置信息,你只需要额外添加一个dataId配置项注意Server和Client的命名空间和组要一致

2022-03-15 15:35:41 579

原创 application.yml与bootstrap.yml的区别

前言Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap,另外一种是 application。区别bootstrap.yml 和 application.yml 都可以用来配置参数。bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模

2022-03-12 12:24:00 4157

原创 Feign的超时、重试、降级配置

application.ymlribbon: #请求处理的超时时间 ReadTimeout: 6000 #请求连接的超时时间 ConnectTimeout: 6000 # 是否对所有请求都进行重试。false(默认)-只对get请求进行重试;true-对所有请求进行重试(对于put或post等写操作,如果服务器接口没做幂等性,重试会产生不好的结果)!!! OkToRetryOnAllOperations: false # 每个实例重试次数,不包括首次请求,默认为0。当Eurek

2022-03-11 19:39:01 1330

原创 【SpringBoot】覆盖jar包中@Bean的方法

问题分析方案一:allow-bean-definition-overridingspring: main: allow-bean-definition-overriding: true # 允许bd覆盖/** * @description: 先设置allow-bean-definition-overriding=true,然后在@Import{@link kfang.infra.feature.mysql.MysqlConfig}后再导入该类,从而覆盖其中的mysqlSq

2022-03-08 16:27:44 5386

原创 【Spring】@Transactional的事务传播方式REQUIRED、REQUIRES_NEW、NESTED

参考spring事务传播之required nested requires_newSpring框架(事务传播行为)补充NESTED是为被嵌套的方法开启了一个子事务,这个事务与父类使用的是同一个连接。REQUIRES_NEW是使用一个全新的事务,这个事务属于另外一条全新的连接。两者最重要的体现,就是在多数据源中,REQUIRES_NEW会再次触发一下数据源的获取,而NESTED则不会。NESTED开始一个 “嵌套的” 事务, 它是已经存在事务的一个真正的子事务。嵌套事务开始执行时, 它将取得

2021-12-30 16:54:42 1354

原创 【Spring】SpEL(即Spring的表达式语言)

遗漏知识点语法使用#{...}作为界定符,所有在大括号中的字符都将被认为是SpEL字面量的表示整数:#{666}String:可以用单引号或双引号作为字符串的界定符,#{‘Tom’}Boolean:#{true}、#{false}运算符算术运算符:+、-、*、/、%、∧+号还可以作为字符串拼接符比较运算符:<、>、==、<=、>=、lt、gt、eq、le、ge逻辑运算符:and、or、not、&&、||判空运算符:#{user.n

2021-12-25 21:47:51 331

原创 Jackson序列化、反序列化首字母大写的json字符串问题解决

Jackson默认的属性发现规则将会查找到如下所述的属性:所有被public修饰的字段(成员变量);所有被public修饰的getter(即形如“getXxx()”的方法);所有被public修饰的setter(即形如“setXxx(value)”的方法)字段名是通过get方法名转换过来的, 所以会出现首字母大小写问题, 以及如果用@JsonProperty("Uname")强制序列化为某个名称时, 如果不在get/set方法上加@JsonIgnore则会出现两个uname字段,一个

2021-09-17 23:34:26 4635 2

原创 【SpringBoot】@Async、AsyncConfigurer源码解析

前言之前写过一篇@Async、@EnableAsync、@EnableScheduler、@Scheduled在Spring应用中的基本使用的文章。最近在学习SpringBoot的异步任务,发现书中还提及到AsyncConfigurer接口,之前没见过它啊-_-! 那么 这个AsyncConfigurer接口到底有什么用?我们的异步执行器配置类要不要实现它? 带着疑惑,我就去阅读了一下相关的源码,终于找到答案了。顺便还理清楚了另一个问题:Spring到底是如何决定某个目标方法使用哪个异步执行器(线程

2021-08-05 01:18:56 2247 2

原创 【SpringBoot】整合Redis(使用spring-boot-starter-data-redis)

前言Jedis是Redis官方推荐的面向Java的操作Redis的客户端,而RedisTemplate是SpringDataRedis中对JedisApi的高度封装。SpringDataRedis相对于Jedis来说可以方便地更换Redis的Java客户端,比Jedis多了自动管理连接池的特性,方便与其他Spring框架进行搭配使用如:SpringCache。Lettuce 和 Jedis 的都是连接Redis Server的客户端程序。Jedis在实现上是直连redis server,多线程环境下非线

2021-08-03 09:01:48 8750

原创 [Mybatis]@Mapper注解

/** * 使用JavaConfig时,使用此注释注册MyBatis mapper接口 */@Import(MapperScannerRegistrar.class)public @interface MapperScan {}

2021-08-02 14:52:48 5594

原创 【Mybatis】的使用及原理

Mybatis的使用(不整合Spring)参考Mybatis3JDK的动态代理!Mybatis的原理Mybatis-Spring的使用参考Mybatis-SpringMybatis-Spring的原理虽然@Bean可以将生成的mapper的代理bean交给Spring管理,但是要为每个mapper写一个@Bean,太麻烦了。MapperFactoryBean所以有了MapperFactoryBean,它实现了Spring的FactoryBean接口,并新增一个属性mapperInterfa

2021-07-22 13:48:33 371

原创 【SpringCloud】学习笔记(补充)

阅读课程源码3-5. 搭建与配置 Eureka 服务注册中心添加spring-cloud-starter-eureka依赖时,需先在dependencyManagemenr节点中添加spring-cloud-dependencies(因为spring-boot-dependencies没有仲裁cloud的版本,注意版本号与当前工程的spring-boot-dependencies版本的对应关系,否则可能启动报错),并在repostories节点中添加https://repo.spring.io/libs

2021-07-19 09:15:24 147

原创 java并发关键知识速记

JVM运行时数据区域JVM栈、native方法栈、寄存器、堆(字符串常量池)、元空间(常量池)JMM内存不可见—内存屏障–HappensBefore、锁机制对象头–MarkWord–线程id+四种锁类型、锁升级的条件ThreadLocal同步的措施一般是加锁,这就需要使用者对锁有一定的了解,这显然加重了使用者的负担。那么有没有一种方式可以做到,当创建一个变量后,每个线程对其进行访问的时候访问的是自己线程的变量呢?其实ThreadLocal就可以做这件事情CAS四个数据:对象内存+属性的偏

2021-07-11 11:46:17 116 1

原创 《Java并发编程之美》学习笔记及补充

第一部分 Java并发编程基础篇第1章 并发编程线程基础1.1 什么是线程在讨论什么是线程前有必要先说下什么是进程,因为线程是进程中的一个实体,线程本身是不会独立存在的。进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。操作系统在分配资源时是把资源分配给进程的,但是CPU资源比较特殊,它是被分配到线程的,因为真正要占用CPU运行的是线程,所以也说线程是CPU分配的基本单位。一个进程中有多

2021-07-10 08:53:51 195 2

原创 ThreadPoolExecutor源码分析

主要代码public class ThreadPoolExecutor extends AbstractExecutorService { private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); private static final int COUNT_BITS = Integer.SIZE - 3; private static final int CAPACITY = (1 << COUN

2021-07-08 00:33:01 52

转载 【ArrayList】ArrayList为什么线程不安全,体现在哪些方面

参考https://blog.csdn.net/wandou9527/article/details/108224511

2021-05-28 09:02:04 82

转载 【Runtime】

参考Java进程Runtime、Process、ProcessBuilder调用外部程序Java中Process类的使用与注意事项补充JDK1.5开始出现的ProcessBuilder,是创建Process的优选方式。且JDK1.5开始Runtime.getRuntime.exec(cmdarray, envp, dir)的底层就是new ProcessBuilder(cmdarray).environment(envp).directory(dir).start()。Process.getInp

2021-05-26 23:08:50 109

原创 【Redis】Redis6教程

文章目录11.6.2 LUA脚本在Redis中的优势11.7 Redis_事务_秒杀案例_代码16.4.分布式锁视频:https://www.bilibili.com/video/BV1Rv41177Af笔记:https://pan.baidu.com/s/1gqLrT3hcR-9s9VYl7dPGpg 提取码:hfl3本博客是对上述笔记的补充。11.6.2 LUA脚本在Redis中的优势Redis在eval命令执行Lua代码的时候,Lua代码将被当成一个命令去执行,并且直到eval命令执行完成,

2021-05-09 00:17:58 190

转载 [Redis]的客户端Jedis与Redisson的对比

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还实现了可重入锁(Reentrant Lock)、公平锁(Fair Lock、联锁(MultiLock)、 红锁(RedLock)、 读写锁(ReadWriteLock)等,还提供了许多分布式服务。Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Conc

2021-05-09 00:05:19 480

原创 【Spring】bean的三种初始化方法及它们的执行顺序

如果使用不同的方式为同一个bean配置了多个不同的初始化方法,执行顺序如下所示:Methods annotated with @PostConstructafterPropertiesSet() as defined by the InitializingBean callback interfaceA custom configured init() method若不同方式配置了同一个方法,例如init(),name这个方法只会执行一次。销毁方法的顺序执行也是一样的:M

2021-04-20 00:14:29 1359

原创 【Mybatis-Plus】提供的Rest API 通用控制器

由于使用度较低,MP在3.5.0移除ApiController,但我觉得这个还挺好用的,可以作为项目的通用规范,所以在这里记录一下。IErrorCodepackage com.baomidou.mybatisplus.extension.api;/** * REST API 错误码接口 * * @author hubin * @since 2018-06-05 */// 使用度较低,如果使用请及时迁移本地 3.5.0 移除@Deprecatedpublic interface IEr

2021-04-19 11:11:15 3709 4

原创 MyBatis-Plus进阶

通用枚举默认枚举配置默认枚举配置:即指Configuration#defaultEnumTypeHandler这一配置。至于这一配置是什么意思,参考官网介绍。通用枚举配置首先,要声明通用枚举属性,有两种方式:方式一:使用 @EnumValue 注解枚举属性;方式二:枚举属性,实现 IEnum 接口;然后,还要配置扫描通用枚举:即指typeEnumsPackage这一配置(在SpringBoot项目就是mybatis-plus.typeEnumsPackage)。至于这一配置是什么意思,参考

2021-04-17 01:41:02 448

原创 【Spring】注解驱动教程

文章目录前言11讲:27讲:38讲:40讲:46讲:前言视频:尚硅谷Spring注解驱动教程(雷丰阳源码级讲解)笔记:史上最详细的Spring注解驱动开发系列教程本博客是对上述笔记的补充。11讲:没有分析FactoryBean的原理,见DefaultListableBeanFactory#preInstantiateSingletons、AbstractBeanFactory#doGetBean、AbstractBeanFactory#getObjectForBeanInstance27讲:

2021-04-13 23:32:34 193 1

原创 【Spring】常用扩展点及其应用场景

包括各种自定义处理PostProcessor(后置处理器)和各种感知IOC容器的Aware(觉察)BeanDefinitionRegistryPostProcessor接口BeanFactoryPostProcessor接口public interface BeanFactoryPostProcessor { /** * Modify the application context's internal bean factory after its standard * initial

2021-04-13 14:07:56 1519

原创 【Spring】IOC容器的创建过程

创建AnnotationConfigApplicationContextAnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MainConfig.class);AnnotationConfigApplicationContext初始化public class AnnotationConfigApplicationContext extends GenericApplicationContext

2021-04-13 13:55:06 333

原创 【SpringMVC】Servlet的原生注解@WebListener、@WebFilter、@WebServlet

三个注解都是servlet3.0定义的,在javax.servlet.annotation包下。@WebListener 用于声明WebListener。 使用WebListener注释的任何类都必须实现javax.servlet.ServletContextListener , javax.servlet.ServletContextAttributeListener , javax.servlet.ServletRequestListener , javax.servlet.ServletReques

2021-03-16 23:04:25 2785

visio2016.zip

visio2016.zip

2021-08-06

Spring Boot 学习笔记完整教程.pdf

Spring Boot 学习笔记完整教程

2021-01-30

flv.min.js

由于flash存在很多弊端,各大浏览器逐渐弃用了flash,而html5的video标签不支持播放flv格式视频,所以flv.js就应运而生!flv.js是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。

2020-10-15

pdt_tools.indentGuide.zip

本文件是eclipse插件,可以使eclipse中java代码、js代码、jsp代码等出现缩进对齐辅助线,让代码显得层次清晰美观,方便开发人员开发。下载后先解压,然后在eclipse中选择安装本地插件,指定到解压目录即可安装成功。

2019-10-11

yamdi-linux-1.9.tar.gz

yamdi可以为视频加上关键帧信息,使得用jwplayer等在线播放视频时能够拖动进度条到指定点播放 。

2019-03-08

空空如也

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

TA关注的人

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