- 博客(16)
- 收藏
- 关注
原创 学生成绩分析系统:用Python打造教育数据分析工具
在教育工作中,成绩分析是教学改进的重要依据。传统的手工统计方式效率低下,无法快速呈现学生的成长轨迹。为此,我开发了这款基于Python的学生成绩分析系统,现开源分享给教育工作者和开发者社区。如果您是教育工作者请直接下载exe就可以使用,如果您是开发者想要获取源码请参考以下链接。支持模糊匹配(输入"张"可匹配"张三")支持多版本Excel文件解析。容错提示(相似姓名推荐)
2025-04-04 16:13:41
396
原创 结合Spring MVC 来详细讲解 Spring Boot 的作用和优势
一个依赖即可引入 Spring MVC、Tomcat、Jackson 等所有必要组件,无需手动管理版本兼容性。依赖,内嵌 Tomcat(默认)、Jetty 或 Undertow。如果检测到类路径中有 Thymeleaf、FreeMarker 等模板引擎,自动配置对应的。,提供了一套清晰的架构,用于处理 HTTP 请求、业务逻辑和视图渲染。:前端控制器,负责接收所有请求并分发到对应的 Controller。部署时需要打包为 WAR 文件,依赖外部 Tomcat。是Spring框架的一个模块,专注于构建。
2025-03-04 01:12:51
433
原创 深入浅出Redis缓存击穿,缓存雪崩,缓存穿透
使用Redis哨兵(Sentinel)或集群模式(Cluster)实现故障自动转移,避免单点故障。数据库存在瓶颈,单次查询成本高(如复杂JOIN操作)、数据库连接池有限(如最大50连接)对热点Key不设置过期时间,通过异步线程定期更新缓存(如定时任务或消息队列)。对查询结果为空的Key,缓存短时间(如5分钟)的空值,避免重复穿透。在缓存层前加布隆过滤器,预存所有合法Key的哈希值,拦截无效请求。(如无效ID),绕过缓存直接查询数据库,导致数据库压力激增。,导致大量并发请求直接穿透缓存,瞬间压垮数据库。
2025-02-27 00:54:34
455
原创 java常见面试问题
线程池是一种管理和复用线程的机制,通过线程池可以避免频繁创建和销毁线程的开销,并控制并发线程数量。回答示例:Java的多态性是指对象在不同的情境下表现出不同的行为。这样,在调用eat()方法时,根据实际的对象类型,会执行相应的重写方法,实现不同的行为。什么是Java中的反射机制?回答示例:Java中的反射机制是指在运行时动态获取类的信息并操作类或对象的能力。一个使用反射的场景是在框架开发中,可以通过反射加载和实例化类,动态调用类的方法或访问字段。回答示例:在我最近的项目中,我们面临了性能优化的挑战。
2023-05-31 17:34:15
182
原创 【每日一刷】206.反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]解1:class Solution { public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode curr = he...
2022-05-01 04:24:50
629
2
原创 logback 使用regex匹配进行日志脱敏
我们使用正则表达式替换敏感数据,正则表达式中有5个组,例如:/* * {phoneNumber=(+358)0393289092389}, * then: * (Group #1) (Group #2) (Group #3) (Group #4) (Group #5) * { phoneNumber= (+358)0393289092389
2022-04-28 12:01:32
887
原创 Spring moble 自定义Device接口
在Spring moble框架中提供了一个Device的接口package org.springframework.mobile.device;/** * A model for the user agent or device that submitted the current request. * Callers may introspect this model to vary UI control or rendering logic by device type. * @auth
2021-12-13 18:02:00
859
2
原创 PBKDF2加密算法集成
PBKDF2通过password和salt进行hash,然后将结果作为salt在与password进行hash,多次重复此过程,生成最终的密文。package eu.digient.sdk.securityimport eu.digient.sdk.util.AssertUtilimport eu.digient.sdk.util.Base64Utilimport javax.crypto.SecretKeyFactoryimport javax.crypto.spec.P...
2021-12-02 16:58:21
962
1
原创 Comparator Java7 Java8 Groovy的不同写法
Java提供了一个用于比较的接口Comparable, 通过实现compareTo的方法来实现对于容器外部类的比较方法,所有实现该接口的类,都动态的实现了该比较方法,Java中同样提供了一个关于容器排序的接口Comparator,主要是通过类的内部属性进行一个比较然后对其进行比较,本篇文章主要分析比较了Comparator在Java7 Java8 Groov当中的不同写法。
2021-10-27 11:29:12
362
3
原创 logback 日志脱敏 隐藏PII信息
PII信息全称:Personally identifiable information (PII)PII is any information about an individual maintained by an agency, including any information that can be used to distinguish or trace an individual‘s identity, such as name, social security number, d
2021-09-02 17:51:51
647
3
原创 Implement Json logback appender
In order to improve logs oncloud environment, it is required to write logs in Json format.2 new dependencies need to be added api("ch.qos.logback:logback-classic:${logback_version}")api("ch.qos.logback.contrib:logback-jackson:${logback_jackson_vers.
2021-08-17 18:24:34
235
1
原创 Spring 事务的异常处理机制
在service层的RuntimeException没有处理好导致了事务没有按照预期运行而是回滚了整个事务。业务描述:在平台上,一位用户采取特殊手段跳过了前台的验证取款,通过浏览器的fetch取出大于自己钱包余额的amount。sql: DECLARE ERROR_NEGATIVE_BALANCE CONDITION FOR SQLSTATE 'B0014'; -- Check did all money deducted what supposed ...
2021-07-27 10:27:51
814
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人