自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring解决循环依赖的详细过程

在 Bean 实例化后,将工厂对象放入三级缓存。在填充属性时,如果发现循环依赖,从三级缓存中获取提前暴露的 Bean。将提前暴露的 Bean 放入二级缓存,完成属性注入。最终将完全初始化好的 Bean 放入一级缓存。通过这种机制,Spring 能够有效地解决单例 Bean 的循环依赖问题,同时保证了 Bean 的正确初始化顺序。

2025-02-24 16:02:21 868

原创 动态增加一个controller类

在 Spring Boot 项目中,可以通过注入的方式测试动态生成的 Bean 是否生效。以下是一个完整的示例,展示如何动态生成一个类并注册到 Spring IOC 容器中。中判断类是否存在,如果不存在则动态生成并注册。接口,如果动态生成类成功,则会返回。库来动态生成一个类。

2025-02-21 17:51:20 317

原创 Spring Boot 项目中动态生成并注册 Bean

通过这种方式,你可以在 Spring Boot 项目中动态生成并注册 Bean,实现高度灵活的扩展能力。在 Spring Boot 项目中,可以通过注入的方式测试动态生成的 Bean 是否生效。以下是一个完整的示例,展示如何动态生成一个类并注册到 Spring IOC 容器中。中判断类是否存在,如果不存在则动态生成并注册。接口,如果动态生成类成功,则会返回。库来动态生成一个类。

2025-02-21 09:37:47 520

原创 ReentrantLock()和newCondition功能介绍

和Condition是Java并发包中提供的用于实现线程同步的机制,它们提供了比传统的关键字更灵活和强大的控制能力。

2025-02-19 17:28:25 244

原创 多线程顺序控制 A,B,C三个线程,要求按指定顺序执行

并发编程,多线和

2025-02-19 16:45:49 181

原创 cypher语法中,函数用法介绍

Cypher 是 Neo4j 图数据库的查询语言,提供了丰富的内置函数,用于在查询中对数据进行处理和计算。通过以上函数,你可以在 Cypher 查询中实现复杂的数据处理和计算。如果需要更复杂的功能,可以通过 Neo4j 的扩展机制实现自定义函数。返回列表中除第一个元素外的其余部分。返回列表的第一个或最后一个元素。用于处理图数据中的节点和关系。返回路径的长度(关系的数量)。返回节点或关系的 ID。返回节点或关系的属性。返回路径中的所有节点。返回路径中的所有关系。用于处理字符串数据。替换字符串中的子串。

2025-02-19 11:33:53 562

原创 Cypher中 unwind with等的用途

用于将查询的结果传递给下一部分,类似于 SQL 中的子查询或管道操作。它可以用于分阶段处理数据、过滤结果或计算中间值。是两个非常有用的关键字,用于处理列表数据和控制查询的执行流程。以下是它们的详细用途和示例。用于将列表中的每个元素展开为单独的行。它通常用于处理列表数据,将列表转换为多行记录。,可以编写出高效且功能强大的 Cypher 查询。如果有更多需求,可以参考。可以结合使用,以实现更复杂的查询逻辑。在 Cypher 查询语言中,

2025-02-19 11:32:04 539

原创 hashMap 知识点

设计一个自定义的HashMap哈希函数:设计一个好的哈希函数,尽量减少哈希冲突。冲突解决:使用链表或红黑树来解决哈希冲突。扩容机制:当元素数量超过一定阈值时,进行扩容。线程安全性:如果需要线程安全,可以使用锁或其他同步机制。

2025-02-14 15:02:57 925

原创 java多线程相关的知识点

Java 多线程涉及的知识点非常广泛,包括线程创建、同步、通信、线程池、并发工具类等。掌握这些知识点可以帮助你编写高效、安全的并发程序。在实际开发中,建议优先使用线程池和并发工具类,避免直接操作线程。

2025-02-07 09:04:55 911

原创 在 Spring Boot 中,服务启动后执行代码的常见方法

方法特点简单易用,适合执行启动任务。支持更复杂的参数处理。适用于 Bean 初始化时执行的逻辑。监听应用事件,适合在应用完全启动后执行代码。精确控制 Bean 的生命周期,适合复杂场景。适用于 Bean 初始化时执行的逻辑。@Bean的initMethod属性适合在配置类中定义 Bean 时使用。适合在main方法中执行简单的启动逻辑。根据具体需求选择合适的方法。如果需要简单的启动任务,推荐使用或;如果需要更复杂的生命周期管理,可以使用或。

2025-02-06 16:24:30 863

原创 mysql导出表结构说明文档

【代码】mysql导出表结构说明文档。

2024-12-09 16:25:56 193

原创 检测连接泄露nacos配置

connection-timeout: 30000 # 连接超时时间。minimum-idle: 10 # 设置最小空闲连接数。maximum-pool-size: 30 # 设置最大连接数。idle-timeout: 600000 # 空闲超时时间。max-lifetime: 1800000 # 连接存活时间。

2024-11-01 10:00:54 198

原创 ibatis中拦截SQL修改表名

【代码】ibatis中拦截SQL修改表名。

2024-10-31 11:56:46 274

原创 ibatis中SQL查询耗时监控拦截器

【代码】ibatis中SQL查询耗时监控拦截器。

2024-10-31 11:47:30 269

原创 设计模式-桥接模式(Bridge Pattern)

通过这种方式,我们可以很容易地添加新的形状或者新的渲染器,而无需修改现有的代码。例如,你可能有一个窗口系统,其中的窗口可以有多种外观(如金属风格、木质风格),同时这些窗口又可以有不同的行为(如滚动条、下拉菜单)。桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立变化。桥接模式的核心思想是将一个类的行为和它的实现解耦,使得这两者可以在未来独立地演变。Implementor:定义了一个实现类接口,这个接口不一定要与Abstraction的接口完全一致。

2024-10-15 19:27:16 337

原创 设计模式-访问者模式(Visitor Pattern)

设计模式之访问者模式

2024-10-15 17:51:22 360

原创 新增 Spring Servlet 过虑器(Filter)

在这个方法里,你可以编写自己的逻辑来处理请求和响应,并通过chain.doFilter(request, response);继续传递请求到下一个过滤器或目标Servlet。在Spring框架中,过滤器(Filter)是基于Servlet API的组件,它可以在请求到达Servlet之前或响应返回客户端之前执行一些预处理或后处理操作。然后,你需要在Spring配置中注册这个过滤器。这样,你的过滤器就被正确地配置并将在指定的URL模式下生效。根据实际需求,你可能还需要调整过滤器的具体逻辑以及它所应用的路径。

2024-10-11 20:06:32 292

原创 新增 Spring servlet 拦截器 (Interceptor)

postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView):该方法会在控制器的方法调用之后,但在视图渲染之前被调用。preHandle(HttpServletRequest request, HttpServletResponse response, Object handler):该方法会在控制器的方法调用之前被调用。

2024-10-11 20:01:45 203

转载 springboot快速搭建redis环境

这两台在学习redis,不得不说redis作为非关系型数据库,其功能非常强大,我打算用redis对课程作业的后台进行升级,在一些经常访问的资源使用redis存储在服务器的内存中,当进行查找的时候,如果能使用redis查找到那么就直接返回,否则再使用mysql到数据库中进行查找。// 默认用的是用JdkSerializationRedisSerializer进行序列化的。// hash数据结构序列化方式,必须这样否则存hash 就是基于jdk序列化的。# Redis服务器连接密码(默认为空)

2023-07-18 14:45:12 137

原创 java多线程执行有返回值的Callable、Future使用方法

Callable的call()方法类似于Runnable接口中run()方法,都定义任务要完成的工作,实现这两个接口时要分别重写这两个方法,主要的不同之处是call()方法是有返回值的(其实还有一些区别,例如call方法可以抛出异常,run方法不可以),运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。应用小例子public cl

2021-01-07 02:44:43 638 1

原创 JDK8新特性之函数式接口

函数式接口规范1、@FunctionalInterface标识为一个函数式接口只能用在只有一个抽象方法的接口上。2、接口中的静态方法、默认方法、覆盖了Object类的方法都不算抽象方法。3、@FunctionalInterface注解不是必须的,如果该接口只有一个抽象方法可以不写,它默认就符合函数式接口,但建议都写上该注解,编译器会检查该接口是否符合函数式接口的规范。自定义函数式接口//一个简单的函数式接口定义@FunctionalInterfacepublic interface

2021-01-07 01:51:55 138

原创 优雅的终止线程及interrupt、isInterrupted、interrupted的使用方法

java中终止一个线程大至可以用以下三种方式使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。 使用 interrupt 方法中断线程。 使用 stop() 方法强行终止线程(调用 stop() 方法会立刻停止 run() 方法中剩余的全部工作,不推荐使用这个方法,该方法已被弃用)。使用退出标志方式:public class MyThread extends Thread { public volatile boolean exit = false; .

2020-12-28 00:59:44 415

原创 线程安全三要素

一、原子性原子性指的是一个或多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。二、可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其它线程可以立即看到修改后的结果。三、有序生有序性指的是程序的执行顺序按照代码的先后顺序来执行。...

2020-12-28 00:23:22 1540

转载 究竟什么时候该使用MQ?MQ的应用场景

任何脱离业务的组件引入都是耍流氓。引入一个组件,最先该解答的问题是,此组件解决什么问题。MQ,互联网技术体系中一个常见组件,究竟什么时候不使用MQ,究竟什么时候使用MQ,MQ究竟适合什么场景,是今天要分享的内容。MQ是什么?消息总线(Message Queue),后文称MQ,是一种跨进程的通信机制,用于上下游传递消息。画外音:这两个进程,一般不在同一台服务器上。在互联网架构中,MQ经常用做“上下游解耦”:(1)消息发送方只依赖MQ,不关注消费方是谁;(2)消息消费方也只.

2020-12-28 00:00:07 1427

转载 SpringMVC的简介和工作流程

一、简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。SpringMVC是一种web层的mvc框架,用于替代servlet(处理响应请求,获取表单参数,表单验证等)二、工作流程1、用户发送请求至前端控制器DispatcherServlet。2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映..

2020-12-27 00:23:28 138

转载 Queue操作中 add/offer,element/peek,remove/poll区别

add()和offer()区别add()和offer()都是向队列中添加一个元素。一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,调用 add() 方法就会抛出一个 unchecked 异常,而调用 offer() 方法会返回 false。因此就可以在程序中进行有效的判断!poll()和remove()区别remove() 和 poll() 方法都是从队列中删除第一个元素。如果队列元素为空,调用remove() 的行为与 Collection 接口的版本相似会抛出异常,但是新的 pol.

2020-12-27 00:10:24 221

原创 java集合详解

一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元

2020-12-26 23:58:17 80

转载 实现一个固定长度的集合队列

在开发中,有时候我们会遇到这样的需求:对一个集合操作,提前为集合指定最大大小,在我们不断向集合中添加数据的时候,当数据内容超过最大值的时候,自动将最先入队的元素移除队列。实现方法很简单,代码如下:/** * 实现一个固定长度的集合队列 * * @author SHANHY(365384722@QQ.COM) * @date 2015年11月9日 * @param <E> */public class LimitQueue<E> implements Q.

2020-12-26 23:49:49 329

空空如也

空空如也

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

TA关注的人

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