jinji's blog

所有标签

spring 为什么推荐 用构造函数,而不是autowire

Spring 推荐使用构造函数注入而非 @Autowired 字段注入,主要有以下几个关键原因: 1. 不可变性 (Immutability) // 构造函数注入 - 推荐 @Service public class OrderService { private final PaymentS

jinji jinji 发布于 2026-01-08

RestController 和 Controler区别

@RestController 和 @Controller 是 Spring MVC 中两个常用的注解,主要区别如下: 1. @Controller 传统 MVC 控制器 通常返回视图名称(用于渲染 HTML 页面) 需要配合 @ResponseBody 注解才能返回 JSON/XML 数据 适用于

jinji jinji 发布于 2026-01-08

MyBatis-Flex QueryWrapper 自动添加意外查询条件问题分析与解决

🐛 问题现象 在使用 MyBatis-Flex 构建查询条件时,发现 SQL 中自动添加了不应该存在的条件: SELECT COUNT(*) AS `total` FROM `sys_role` WHERE `tenant_id` = ? AND (`role_sort` = ?) AND `de

jinji jinji 发布于 2025-08-21

Spring Boot 3 各个小版本

以下是 Spring Boot 3 各个小版本(3.0 → 3.5)的主要区别整理: 🔹 Spring Boot 3.0 (发布于 2022 年 11 月) Java 17 起点:必须使用 Java 17 及以上版本,不再支持 Java 8 。 升级至 Spring Framework 6 & J

jinji jinji 发布于 2025-07-16

什么是jar包?什么是war包?

JAR包与WAR包的区别 JAR包(Java Archive)和WAR包(Web Application Archive)都是Java中常用的打包格式,但用途不同: JAR包 (Java Archive) 用途:用于打包Java类文件、资源文件和元数据 特点: 标准Java应用程序打包格式 包含.c

jinji jinji 发布于 2025-04-03

DTO、VO、PO是什么意思,为什么在domain下面

在软件开发中,DTO、VO、PO 是常见的对象模型,用于在不同层次之间传递数据或表示数据。它们的主要目的是解耦和分层,使代码更清晰、更易于维护。以下是它们的定义和区别: 1. PO(Persistent Object,持久化对象) 定义:PO 是与数据库表直接映射的对象,通常与数据库表一一对应。 作

jinji jinji 发布于 2025-01-09

Java字符串为什么设计成不可变

Java中字符串不可变(String 是 immutable)的设计主要是出于以下几个重要原因: 1. 保证安全性 字符串在很多场景中会被用作关键参数或标识,例如: 网络地址、文件路径等作为传递参数。 在安全框架中作为用户权限、密码、密钥等的基础。 如果字符串是可变的,那么在传递过程中被修改,可能会

jinji jinji 发布于 2024-12-17

java为啥设计成继承多接口却只能继承单个类

Java 设计时允许单继承(一个类只能继承一个类),但支持多接口实现(一个类可以实现多个 interface),这是出于以下几个重要原因: 1. 避免“钻石问题”带来的歧义 在支持多继承的语言(如 C++)中,如果一个类继承自多个父类,且这些父类有共同的祖先类,那么可能会出现钻石问题(Diamond

jinji jinji 发布于 2024-12-17

Java小白学习之路

学不了一点。 毕业之后最讨厌做的就是写java,兜兜转转几年,又要开始学习怎么写java了。开个帖子,记录一下学习过程吧,学不会就删帖

jinji jinji 发布于 2024-12-13