
Java基础
文章平均质量分 60
高塘居士
这个作者很懒,什么都没留下…
展开
-
spring解决循环依赖的详细过程
在 Bean 实例化后,将工厂对象放入三级缓存。在填充属性时,如果发现循环依赖,从三级缓存中获取提前暴露的 Bean。将提前暴露的 Bean 放入二级缓存,完成属性注入。最终将完全初始化好的 Bean 放入一级缓存。通过这种机制,Spring 能够有效地解决单例 Bean 的循环依赖问题,同时保证了 Bean 的正确初始化顺序。原创 2025-02-24 16:02:21 · 878 阅读 · 0 评论 -
动态增加一个controller类
在 Spring Boot 项目中,可以通过注入的方式测试动态生成的 Bean 是否生效。以下是一个完整的示例,展示如何动态生成一个类并注册到 Spring IOC 容器中。中判断类是否存在,如果不存在则动态生成并注册。接口,如果动态生成类成功,则会返回。库来动态生成一个类。原创 2025-02-21 17:51:20 · 332 阅读 · 0 评论 -
Spring Boot 项目中动态生成并注册 Bean
通过这种方式,你可以在 Spring Boot 项目中动态生成并注册 Bean,实现高度灵活的扩展能力。在 Spring Boot 项目中,可以通过注入的方式测试动态生成的 Bean 是否生效。以下是一个完整的示例,展示如何动态生成一个类并注册到 Spring IOC 容器中。中判断类是否存在,如果不存在则动态生成并注册。接口,如果动态生成类成功,则会返回。库来动态生成一个类。原创 2025-02-21 09:37:47 · 593 阅读 · 0 评论 -
多线程顺序控制 A,B,C三个线程,要求按指定顺序执行
并发编程,多线和原创 2025-02-19 16:45:49 · 205 阅读 · 0 评论 -
hashMap 知识点
设计一个自定义的HashMap哈希函数:设计一个好的哈希函数,尽量减少哈希冲突。冲突解决:使用链表或红黑树来解决哈希冲突。扩容机制:当元素数量超过一定阈值时,进行扩容。线程安全性:如果需要线程安全,可以使用锁或其他同步机制。原创 2025-02-14 15:02:57 · 928 阅读 · 0 评论 -
java多线程相关的知识点
Java 多线程涉及的知识点非常广泛,包括线程创建、同步、通信、线程池、并发工具类等。掌握这些知识点可以帮助你编写高效、安全的并发程序。在实际开发中,建议优先使用线程池和并发工具类,避免直接操作线程。原创 2025-02-07 09:04:55 · 916 阅读 · 0 评论 -
在 Spring Boot 中,服务启动后执行代码的常见方法
方法特点简单易用,适合执行启动任务。支持更复杂的参数处理。适用于 Bean 初始化时执行的逻辑。监听应用事件,适合在应用完全启动后执行代码。精确控制 Bean 的生命周期,适合复杂场景。适用于 Bean 初始化时执行的逻辑。@Bean的initMethod属性适合在配置类中定义 Bean 时使用。适合在main方法中执行简单的启动逻辑。根据具体需求选择合适的方法。如果需要简单的启动任务,推荐使用或;如果需要更复杂的生命周期管理,可以使用或。原创 2025-02-06 16:24:30 · 904 阅读 · 0 评论 -
ibatis中SQL查询耗时监控拦截器
【代码】ibatis中SQL查询耗时监控拦截器。原创 2024-10-31 11:47:30 · 278 阅读 · 0 评论 -
检测连接泄露nacos配置
connection-timeout: 30000 # 连接超时时间。minimum-idle: 10 # 设置最小空闲连接数。maximum-pool-size: 30 # 设置最大连接数。idle-timeout: 600000 # 空闲超时时间。max-lifetime: 1800000 # 连接存活时间。原创 2024-11-01 10:00:54 · 203 阅读 · 0 评论 -
ibatis中拦截SQL修改表名
【代码】ibatis中拦截SQL修改表名。原创 2024-10-31 11:56:46 · 282 阅读 · 0 评论 -
新增 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 · 209 阅读 · 0 评论 -
新增 Spring Servlet 过虑器(Filter)
在这个方法里,你可以编写自己的逻辑来处理请求和响应,并通过chain.doFilter(request, response);继续传递请求到下一个过滤器或目标Servlet。在Spring框架中,过滤器(Filter)是基于Servlet API的组件,它可以在请求到达Servlet之前或响应返回客户端之前执行一些预处理或后处理操作。然后,你需要在Spring配置中注册这个过滤器。这样,你的过滤器就被正确地配置并将在指定的URL模式下生效。根据实际需求,你可能还需要调整过滤器的具体逻辑以及它所应用的路径。原创 2024-10-11 20:06:32 · 296 阅读 · 0 评论 -
JDK8新特性之函数式接口
函数式接口规范1、@FunctionalInterface标识为一个函数式接口只能用在只有一个抽象方法的接口上。2、接口中的静态方法、默认方法、覆盖了Object类的方法都不算抽象方法。3、@FunctionalInterface注解不是必须的,如果该接口只有一个抽象方法可以不写,它默认就符合函数式接口,但建议都写上该注解,编译器会检查该接口是否符合函数式接口的规范。自定义函数式接口//一个简单的函数式接口定义@FunctionalInterfacepublic interface原创 2021-01-07 01:51:55 · 140 阅读 · 0 评论 -
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 · 224 阅读 · 0 评论 -
实现一个固定长度的集合队列
在开发中,有时候我们会遇到这样的需求:对一个集合操作,提前为集合指定最大大小,在我们不断向集合中添加数据的时候,当数据内容超过最大值的时候,自动将最先入队的元素移除队列。实现方法很简单,代码如下:/** * 实现一个固定长度的集合队列 * * @author SHANHY(365384722@QQ.COM) * @date 2015年11月9日 * @param <E> */public class LimitQueue<E> implements Q.转载 2020-12-26 23:49:49 · 332 阅读 · 0 评论 -
java集合详解
一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元原创 2020-12-26 23:58:17 · 84 阅读 · 0 评论