- 博客(19)
- 收藏
- 关注
原创 spring核心模块
包含与Spring IoC容器中管理的JavaBeans相关的类和接口,定义了Spring容器管理的Bean的生命周期和配置。提供了控制反转(IoC)容器,这是Spring框架的核心,用于管理对象的创建、生命周期、配置和其他对象或资源的依赖关系。扩展了核心IoC容器,提供了框架特有功能的集成,如国际化消息支持、事件传播、资源访问和基于JavaBeans的配置。提供了对单元测试和集成测试的支持,包括对JUnit和TestNG的支持,以及模拟Spring应用程序上下文的功能。
2024-11-12 10:46:01
438
原创 Java程序内存溢出场景分析(来源于Kimi)
在Java 8之前,永久代(PermGen)用于存储类信息、常量池等,如果加载的类、常量过多,可能会导致PermGen空间溢出。使用NIO时,分配了大量直接内存(Direct Buffer),而没有及时释放,可能会导致直接内存溢出。即使堆内存没有被占满,如果垃圾回收器频繁运行但无法回收足够的内存,也可能导致内存溢出。线程数量过多,每个线程都有自己的栈空间,如果创建了大量线程,可能会导致栈内存溢出。尝试在堆内存中分配一个非常大的对象,但剩余的堆内存不足以容纳该对象。
2024-11-11 14:21:30
542
原创 springboot主线程以及关闭释放资源(来源Kimi)
3. 处理运行时任务:如果主线程中有任何@EventListener注解的方法或实现了CommandLineRunner和ApplicationRunner接口的Bean,这些任务会在上下文刷新后执行,但执行完毕后,主线程仍然会保持等待状态。1. 应用程序上下文的关闭:当Spring Boot应用接收到关闭信号时,它会触发应用程序上下文的关闭流程。2. 等待应用程序上下文的关闭:一旦上下文刷新完成,主线程会继续运行,但它主要处于等待状态,直到接收到关闭信号或应用程序上下文被显式关闭。
2024-11-11 11:45:01
716
原创 jvm实例之springboot
2. 内嵌服务器:对于Web应用,Spring Boot提供了内嵌的Web服务器(如Tomcat、Jetty或Undertow),这些服务器运行在同一个JVM实例中,但是它们是作为独立的组件运行在Spring Boot应用的上下文中。4. 容器化部署:在容器化部署(如Docker)中,每个容器通常运行一个JVM实例,因此每个Spring Boot应用实例也会运行在自己的JVM实例中。一个Spring Boot项目运行在一个单独的JVM实例中,同样地,一个Java程序也对应一个JVM实例。
2024-11-11 11:26:56
357
原创 优雅关闭JVM钩子函数(来源于Kimi)
这些函数可以执行一些清理工作,比如关闭文件句柄、数据库连接、停止线程等,以确保应用程序能够优雅地关闭。2. 异常关闭:通过调用 System.exit() 或 Runtime.exit() 方法,或者接收到终止信号(如 SIGTERM ,对应于 kill -15 PID )时,JVM会异常关闭。3. 强制关闭:通过发送 SIGKILL 信号(如 kill -9 PID )或其他强制终止进程的方式,JVM会被强制关闭,这种方式不会触发任何关闭钩子。1. 正常关闭:当所有非守护线程结束时,JVM会正常关闭。
2024-11-11 11:23:41
572
原创 springboot启动流程(来自Kimi)
在 ApplicationStartedEvent 之后,会调用所有添加到Spring上下文中的 CommandLineRunner 和 ApplicationRunner 接口实现类的 run 方法。所有 CommandLineRunner 和 ApplicationRunner 的 run 方法执行完毕后,发出 ApplicationReadyEvent 事件,表示应用已准备好接收请求。应用上下文刷新后,发出 ApplicationStartedEvent 事件,表示应用已启动。
2024-11-11 11:19:49
594
原创 springboot 日志框架原理(来源于Kimi)
Spring Boot内置了对Logback、Log4J2和JDK日志的支持,并且默认使用Logback作为日志实现。当开发者想要使用不同的日志框架时,只需排除 spring-boot-starter-logging 依赖,并添加新的日志框架依赖,如 spring-boot-starter-log4j2 ,Spring Boot就会使用新的日志框架。总结来说,Spring Boot的日志系统通过监听特定的事件来加载和配置日志框架,并且提供了灵活的配置方式,允许开发者根据需要选择和切换不同的日志框架。
2024-11-11 10:30:40
344
原创 Java实现遍历删除文件夹下的目标类型文件
原因:最近公司私服仓库依赖过少,导入大量本地依赖,导致mvn-install失败,原因是每个依赖中有一个 .remote.repositories 文件,指向私服仓库文件,导致手动引入的依赖jar和pom文件无法识别解析,使用Java编写一个递归删除该文件的程序,代码参考自:java实现删除指定指定目录下面指定某种类型的文件_Gblfy_Blog-优快云博客/** * 删除指定目录下面指定文件类型的文件 * * @param path */ publi
2022-01-20 11:15:05
371
原创 EasyExcel 2.2.9 模板导出的一些坑
EasyExcel NullPointerException analysisCellList templateCollectionAnalysisCache currentUniqueDataFlag
2022-01-20 09:02:43
5871
8
原创 踩坑① MyBatis映射出错
org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound)问题mapper和xml放在同一层级下:
2021-06-29 15:50:23
286
原创 第5次实验 类与对象
代码#include using namespace std; class Time { public: void set_time( ); void show_time( );private: bool is_time(int, int, int); //这个成员函数设置为私有的,是合适的,请品味 int hour; int minute; in
2021-06-29 15:44:21
101
转载 Redis与MySQL双写一致性如何保证?
Redis与MySQL双写一致性如何保证?转载:捡田螺的小男孩-美团二面:Redis与MySQL双写一致性如何保证?前言四月份的时候,有位好朋友去美团面试。他说,被问到Redis与MySQL双写一致性如何保证?这道题其实就是在问缓存和数据库在双写场景下,一致性是如何保证的?本文将跟大家一起来探讨如何回答这个问题。 公众号:捡田螺的小男孩 谈谈一致性一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。 强一致性:这种一致性级别是最符..
2021-05-25 09:11:39
117
原创 示例学习
一、问题分析/* * 文件名称:旱冰场造价 * 作 者:钟小亮 * 完成日期:2017年05月22日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:输入旱冰场的半径 * 问题描述:对象 * 程序输出:旱冰场的造价 * 问题分析: * 算法设计: */ #includeusing namespace std;const
2017-05-22 15:32:27
862
原创 C++第二次实验-循环与选择
* 文件名称:Ex1-1.cpp* 作 者:钟小亮* 完成日期:2017 年 3月 1 3日* 版 本 号:v1.0* 对任务及求解方法的描述部分:* 输入描述:无* 问题描述:我的第3个C++程序,熟悉程序的编辑、运行过程* 程序输
2017-03-13 15:04:44
298
原创 C++第二次实验 选择与循环
一、问题及代码[cpp] view plain copy/** 文件名称:Ex1-1.cpp* 作 者:钟小亮 * 完成日期:2017 年 3月13 日* 版 本 号:v1.0* 对任务及求解方法的描述部分:* 输入描述:无* 问题描述:我的第3个C++程序,熟悉程序的编辑、运行过程* 程序
2017-03-13 14:56:24
321
原创 C++第一次作业-选择与循环
个人所得税及星型图 /* * 文件名称:17030801.cpp * 作 者:钟小亮 * 完成日期:2017 年 3 月 8 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:每月含税工资 * 问题描述:我的第一个C
2017-03-08 18:50:04
459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅