- 博客(26)
- 收藏
- 关注
原创 异步CompletableFuture最常用的用法
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> "返回结果");// 1. 阻塞拿(简单,推荐用这个)// 出错抛运行时异常,不用try-catch// 2. 超时拿(防止卡死,更安全)// 1秒拿不到就抛超时异常,需try-catch// 3. 非阻塞拿(拿不到就给默认值)String res3 = future.getNow("默认值");// 任务没做完就返回"默认值"join()
2025-12-12 16:27:04
260
原创 Java常用的JSON
/ 配置 ObjectMapper 自定义规则// 日期格式// 忽略空对象报错// 忽略null字段// 转换后 JSON 示例:{"name":"张三","age":20,"createTime":"2025-06-01 10:00:00"}快速转换为 JSON 字符串;;。转换为 JSON 树形对象(动态操作):(JsonNode);;。
2025-12-10 17:16:42
823
原创 AOP(面向切面编程)
注解作用使用位置核心说明@Aspect标记类为 “切面类”类上需配合 Spring 组件注解(@Component)使类被扫描@Component将切面类纳入 Spring 容器类上无此注解,@Aspect无法生效注解作用使用位置核心说明@Pointcut定义切点表达式,复用切点方法上(空方法)切点表达式支持:execution(匹配方法)、@annotation(匹配注解)、within(匹配包 / 类)等注解作用执行时机核心参数 / 特性@Before前置通知。
2025-12-10 11:20:00
893
原创 Spring MVC 接收请求参数的核心
场景推荐注解核心注意事项URL 查询参数 / 表单参数注意必填性、默认值,List 需显式注解RESTful 路径参数路径模板与 URL 匹配,非必选需 Spring 5.3+JSON 请求体仅能使用一次,Content-Type 需为 application/json请求头 / Cookie注意参数名与头 / Cookie 名一致文件上传 /multipart 请求替代 @RequestParam,支持文件和 JSON 混合多参数封装到实体类支持级联属性,可省略注解。
2025-12-09 17:50:16
758
原创 MyBatis-Plus(简称 MP)的分页查询
当基础 CRUD 满足不了复杂条件(如多表联查、聚合函数)时,可自定义 SQL,只需在 Mapper 中接收Page<T>@Mapper/*** 自定义分页SQL(多表联查示例:用户表+订单表)* 注意:* 1. 方法参数必须包含Page<T>,且放在第一个位置;* 2. @Param("ew") 用于接收查询条件(可选);* 3. SQL中无需写LIMIT,MP会自动拼接分页语法。*/// 构造查询条件(如查询name含"张"的用户)
2025-12-09 14:20:37
714
原创 Java常用获取日期时间方法-笔记
获取当前日历实例,需手动获取具体字段值(无固定字符串格式)。:创建传统日期格式化器,用于后续格式化或解析。:创建自定义格式器,用于后续格式化或解析。:获取带时区的当前日期时间,返回格式为。:获取当前日期和时间,返回格式为。:时:分:秒(24 小时制,例如。:获取当前日期,返回格式为。:获取当前时间,返回格式为。对象,格式由输入字符串和。对象,格式由输入字符串和。:完整日期时间格式(例如。为日期和时间分隔符)。格式化为字符串,例如。格式化为字符串,例如。:创建表示当前时间的。
2025-12-05 16:42:03
374
原创 搞Java不懂?一文读懂:用户空间与内核空间,用户态与内核态
内存是 “存储容器”,分用户 / 内核空间。应用代码存储在用户空间内存,运行时 CPU 处于用户态,只能访问用户空间;只有需要内核帮忙(如分配内存、操作硬件)时,才切换到内核态。Java 代码场景,能直接对应到内存空间和 CPU 状态以下是Java 代码场景快速判断表代码操作场景内存空间(数据存储)CPU 运行模式(执行状态)核心原因1. 局部变量运算(i++a+b用户空间(线程栈)用户态仅操作应用自身的栈内存,无需内核介入2. 创建对象(用户空间(JVM 堆)用户态。
2025-11-15 23:26:24
485
原创 DOS 攻击是什么
DOS 攻击(Denial of Service,拒绝服务攻击)是一种网络攻击技术,目的是让目标系统(服务器、网站或网络设备)无法正常提供服务。
2025-11-01 14:17:17
176
原创 bean的生命周期中,有参构造是不是属于属性注入
有参构造:是 Bean “从无到有” 的创建过程,属于实例化阶段,目的是生成 Bean 对象。属性注入:是 Bean “从有到优” 的完善过程,属于依赖注入阶段,目的是给已有的 Bean 注入依赖。二者是 Bean 生命周期中前后衔接的两个独立步骤,有参构造不属于属性注入。
2025-10-26 15:05:25
263
原创 MySQL索引下推
索引下推:将部分过滤条件从服务器层下推到存储引擎层的索引扫描阶段执行,利用索引中包含的字段提前过滤无效记录,减少回表次数。核心价值:减少 IO 操作,提升查询效率(尤其对联合索引中包含多个过滤条件的场景)。适用条件:联合索引 + 包含索引中非前缀字段的过滤条件。这是 MySQL 对索引利用的重要优化,默认开启(可通过参数控制的开关)。
2025-10-22 10:31:53
265
原创 MySQL 中 EXPLAIN 字段说明
EXPLAIN字段中,typekeyrows和Extra是优化的核心关注点。通过分析这些字段,可以判断查询是否使用了合适的索引、是否存在全表扫描、排序或临时表等性能问题,从而针对性地优化 SQL 或索引设计。编辑分享。
2025-10-22 10:12:05
619
原创 Spring 的工具类BeanUtils
是 Spring 框架提供的一个实用工具类,主要用于 JavaBean 的属性操作(如属性复制、对象实例化等),简化了反射操作的复杂度。
2025-10-21 17:51:28
319
原创 用在实体类上的注解
实体类注解的核心作用是消除硬编码映射、简化校验逻辑、控制数据转换数据库映射:优先用 MyBatis-Plus 的@TableName@TableId(或 JPA 的@Entity@Column数据校验:必用 Spring Validation 注解(如@NotBlank@Min),配合@Valid实现接口参数校验。JSON 处理:根据项目使用的 JSON 工具(Jackson/FastJSON)选择对应注解。简化代码:推荐用 Lombok 的@Data减少模板代码。
2025-10-11 17:29:06
759
原创 在mapper和service里怎么写lambd表达式
在 Mapper 层,通过构建条件后调用BaseMapper方法;在 Service 层,推荐使用链式方法,更简洁高效。核心是利用「类::字段 getter」的 Lambda 表达式实现类型安全的条件构造,这是 MyBatis-Plus 相比传统 MyBatis 的重要优势。
2025-10-11 17:20:47
294
原创 sql中的in、notIn、between 方法的参数类型
innotInbetween方法对参数类型没有限制(数字、字符串、日期等均可),关键是要与数据库字段的类型一致。实际开发中,建议根据字段类型传入对应类型的参数,避免因类型不匹配导致的 SQL 错误。
2025-10-11 17:09:22
276
原创 MyBatis-Plus的使用
MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,在 MyBatis 基础上简化了 CRUD 操作,提供了丰富的 API,无需编写大量 XML 或 SQL 即可完成数据库操作。以下是其核心方法的使用详解,涵盖常用 CRUD、条件构造、分页等场景。提供开箱即用的方法,配合条件构造器可灵活拼接 SQL。实际开发中,推荐使用。MyBatis-Plus 的核心优势是。以获得批量操作和分页等增强功能。避免硬编码,服务层优先使用。
2025-10-11 17:03:20
391
原创 Java 反射
反射是 Java 中非常强大的特性,是很多框架的底层基石。但日常开发中应谨慎使用,优先考虑直接调用,仅在需要动态性(如框架开发、动态配置)时使用,并注意性能优化(如缓存Class对象、Method对象)。
2025-10-11 16:37:14
410
原创 Vue2中,在一个组件中调用另一个无关联关系的组件的方法
根据具体需求和项目结构,选择合适的方法来在 Vue 组件之间调用方法。对于复杂的应用,Vuex 是推荐的方式,而对于简单的场景,事件总线或全局方法可能更为合适。
2025-09-17 10:59:16
398
原创 当一个接口要两个表的数据时,使用连接查询更快还是两次查询合并更快?
当一个接口需要从两个表中获取数据时,选择使用连接查询(JOIN)还是一次查询每个表然后在应用层合并数据,取决于多种因素,包括数据库的设计、数据量、查询的复杂性以及应用的具体需求。
2025-09-11 10:40:41
332
原创 【实现WebMvcConfigurer接口与继承WebMvcConfigurationSupport类区别】
实现接口:推荐在Spring Boot项目中使用这种方式来进行Web MVC的自定义配置。它允许您在保留Spring Boot自动配置的同时,进行必要的自定义。继承类:这种方式适用于需要完全控制Spring MVC配置的场景,但在Spring Boot项目中不常用,因为它会禁用Spring Boot的许多自动配置。因此,对于大多数Spring Boot应用程序,实现接口是更好的选择,除非您有特殊需求需要完全自定义Spring MVC的配置。
2025-09-10 16:29:42
183
原创 【Java中实现两步排序法】
若retention_period包含闰年逻辑,*365可能存在误差(实际应用中可优化为按年份计算,如使用DATE_ADD(archive_time, INTERVAL retention_period YEAR),但需数据库支持)。retention_period:档案保管年限(年),乘以365转换为天数。:优先展示需要处理的档案(即将到期需关注,已到期需处理)。:最近到期的排在前面(如未来30天 > 未来50天)。:最早到期的排在前面(如过期10天 > 过期5天)。,确保重要档案不被遗漏。
2025-09-08 11:11:44
426
原创 MyBatis-Plus 3.x Maven依赖导入方案
可通过 Maven中央仓库 查看最新稳定版,推荐使用3.5.x系列(如3.5.6、3.5.12)。通过以上方案,可根据项目类型快速导入MyBatis-Plus 3.x依赖,实现高效开发。
2025-09-07 23:04:55
688
原创 【Java依赖注入使用】
依赖注入(DI)注解是现代编程语言(如Java、Spring、Dart等)中实现依赖注入的核心机制,通过注解标记依赖关系,简化对象创建和管理。💡 注意:依赖注入的前提是被注入的类必须是Spring管理的Bean(即通过@Component、@Bean等注解注册)。💡 衍生注解:@Service(服务层)、@Controller(控制层)、@Repository(数据访问层)。@Autowired:自动按类型(byType)注入依赖,可用于构造器、字段、setter方法。三、其他框架中的DI注解。
2025-09-07 22:43:52
345
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅