Spring 项目 Java 访问修饰符 + 非访问修饰符全景梳理详解
前言Java 修饰符分为两大体系访问权限修饰符控制类 / 成员可见范围、非访问修饰符定义特性、生命周期、Spring 框架专属语义。 SpringBoot/Spring 开发中修饰符贯穿 Controller、Service、Mapper、实体类、工具类、配置类全场景不同修饰符搭配注解会产生截然不同的 Bean 生命周期、依赖注入、序列化、继承效果。 本文以多表格拆分 场景适配 Spring 工程实操规范完整梳理。一、第一大类访问权限修饰符4 个控制可见范围核心作用限定类、成员变量、成员方法、构造器可被调用的范围作用域从小到大排序private 默认(包私有) protected public表 1四大访问修饰符作用域对照表修饰符中文名称本类内部同一个包下其他类子类不同包任意包所有类Spring 项目常规使用场景private私有✅ 可见❌ 不可见❌ 不可见❌ 不可见1.Service 注入的 Mapper 成员变量 2. 实体类 PO/DO 所有属性字段 3. 工具类内部私有工具方法 4. 常量私有成员无修饰符 default包私有 / 默认✅ 可见✅ 可见❌ 不可见❌ 不可见Spring 极少主动使用仅同一包内协作工具类临时方法protected受保护✅ 可见✅ 可见✅ 可见❌ 不可见1. 父类公共基础 PO 审计字段createTime/updateTime 2. 抽象父 Service 通用业务模板方法public公共✅ 可见✅ 可见✅ 可见✅ 可见1.Controller 所有接口方法 2.Service 接口定义、实现类对外业务方法 3.Mapper 接口 4. 对外暴露的工具类静态方法表 2访问修饰符使用硬性规范Spring 工程最佳实践代码元素推荐修饰符禁止使用原因说明实体类 PO/DTO/Form 属性字段privatepublic封装特性通过 get/set 访问Jackson 序列化默认适配私有字段Service 层注入 Mapper 对象privatepublic/protected依赖注入无需对外暴露保证封装Controller 接口请求方法public其他SpringMVC 需要外部反射调用接口方法必须 public业务接口XXXServicepublicdefault跨包调用实现类必须公共工具类内部工具方法privatepublic仅类内调用无需对外开放抽象父类模板方法protectedprivate供子类重写拓展外部不可调用二、第二大类基础非访问修饰符Java 原生核心修饰符Spring 高频搭配注解使用模块 1static 静态修饰符表 3static 修饰不同元素效果 Spring 场景修饰对象核心特性Spring 开发适用场景禁忌场景static 变量静态变量属于类本身不属于实例全局唯一一份内存所有对象共享1. 全局常量public static final 2. 工具类全局配置参数不能修饰 Autowired 注入成员静态变量无法被 Spring 自动注入static 方法静态方法无需 new 实例类名。方法名 () 直接调用内部只能访问静态资源通用工具类日期转换、Bean 拷贝、加解密工具方法不能调用非静态成员不能加 Transactional 事务注解事务依赖实例代理static 代码块类加载时执行一次仅初始化静态资源工具类加载初始化配置、加载证书文件业务层几乎不用static 内部类脱离外部类可独立实例化复杂 DTO 嵌套内部枚举 / 子对象极少使用模块 2final 最终修饰符不可修改表 4final 修饰不同元素规则对照表修饰对象语义约束Spring 项目使用场景final 变量赋值一次后永久不可修改1. 全局常量public static final String REDIS_PREFIX user:;2. 方法入参禁止方法内篡改入参对象引用final 方法子类无法重写该方法父类固定模板方法不允许子类篡改核心逻辑final 类类不能被继承无子类1. 通用工具类BeanUtil、DateUtil 2. 枚举类默认都是 final模块 3abstract 抽象修饰符面向接口编程核心Spring 架构基石表 5abstract 使用规则 业务场景修饰对象约束规则Spring 架构场景abstract 抽象类不能 new 实例可包含抽象方法 普通成员变量 / 普通方法通用父 BaseService、BaseController封装分页、异常统一处理abstract 抽象方法无方法体必须被子类实现重写模板方法模式定义业务标准流程子类差异化实现关键接口 interface 默认所有方法都是 public abstract模块 4synchronized /volatile/transient 并发序列化修饰符表 6并发 序列化修饰符场景明细修饰符核心作用Spring 使用场景synchronized同步锁保证多线程原子性、可见性定时任务多线程并发争抢资源、库存扣减简易加锁分布式推荐 Redissonvolatile保证变量内存可见性禁止指令重排多线程全局开关标记定时任务启停标记transient序列化忽略字段PO 实体中不需要存入 Redis / 序列化的临时字段三、第三大类Spring 生态专属语义修饰结合注解生效Java 原生修饰符 Spring 注解联动Spring 不会新增语法修饰符但通过原生修饰符 框架注解赋予特殊生命周期、依赖注入、代理特性是业务开发最常用组合。表 7Autowired 注入场景修饰符搭配规范成员变量修饰符搭配 Autowired 效果推荐度privateSpring 反射无视私有权限可正常注入封装性最好⭐⭐⭐⭐⭐ 标准写法protected子类可直接访问注入对象适合父子 Service 继承场景⭐⭐⭐⭐public外部可随意修改注入 Bean破坏容器单例不推荐⭐final搭配构造注入推荐写法private final UserMapper userMapper;构造器注入不可变 Bean⭐⭐⭐⭐⭐ Spring 官方推荐表 8Bean 作用域 修饰符联动单例 / 多例修饰符组合Bean 生命周期特性使用场景private static Autowired禁止使用静态变量只会注入一次单例容器下会出现注入失效❌ 严禁private final 构造注入Bean 创建完成后无法被修改线程安全无循环依赖隐患✅ 生产首选四、第四大类方法专属修饰符汇总接口 / 实现类方法全覆盖表 9方法所有修饰符组合含义对照表修饰符组合适用位置核心作用public voidController 接口方法接收前端 http 请求SpringMVC 反射调用public OverrideService 实现类重写接口方法实现业务规范编译器校验方法签名protected abstract抽象父类模板方法预留拓展点子类必须实现private static工具类内部静态工具方法全局调用无状态线程安全public static final常量工具方法逻辑永久固定不可重写private synchronized类内多线程同步方法本地锁保证线程安全五、综合总表Spring 分层代码全层级修饰符标准配置表 10项目各层代码统一修饰符规范企业级开发标准代码分层代码元素标准修饰符补充说明控制层 Controller类public交给 SpringMVC 扫描注册 Bean请求接口方法public必须公共才能被外部访问业务层 Service业务接口public跨包调用接口实现类ServicepublicIOC 容器托管注入 Mapper 成员变量private final构造器注入官方最优方案业务实现方法public供上层调用数据访问层 MapperMapper 接口publicMyBatis 扫描生成代理对象实体层 PO/DTO/Form实体类public序列化反射需要所有属性字段private封装get/set 访问get/set 方法publicJackson 序列化依赖公共 getter通用工具类工具类public final禁止继承工具方法public static类名直接调用全局常量public static final统一配置常量配置类 Configuration配置类publicSpring 扫描配置 BeanBean 生成对象方法public容器注册第三方组件六、高频易错坑点总结❌ 静态变量不能使用 Autowiredstatic 属于类加载阶段早于 Spring 容器初始化注入一定会失效❌ private 方法不能加 TransactionalSpring 事务基于 JDK/CGLIB 动态代理私有方法无法被代理拦截事务不生效✅ final 成员变量推荐构造器注入杜绝字段注入循环依赖问题线程安全性更高✅ 实体属性一律 private遵循 Java 封装原则适配 JSON 序列化、MyBatis 字段映射❌ 接口内变量默认 public static final方法默认 public abstract无需手动书写。

相关新闻

企业AI知识库搭建指南:从架构设计到落地的全链路工程实践

企业AI知识库搭建指南:从架构设计到落地的全链路工程实践

企业AI知识库搭建指南:从架构设计到落地的全链路工程实践 [配图:企业AI知识库搭建全流程架构图,展示从需求分析到部署上线的完整链路] 前言 随着大模型技术的快速演进,企业AI知识库已从"概念验证"阶段进入"规模化落…

2026/7/29 0:55:42 阅读更多 →
超低损耗 PTFE 复合介质芯层,广氟 GFN 系列构筑高频 PCB 基材国产化核心壁垒

超低损耗 PTFE 复合介质芯层,广氟 GFN 系列构筑高频 PCB 基材国产化核心壁垒

毫米波通信、半导体测试载板、高频覆铜板、航空航天雷达等高端电子领域的快速迭代,对 PCB 基板的高频电学稳定性、高低温尺寸稳定性、介质损耗控制提出了严苛标准。传统 FR-4 环氧树脂板材受制于基材分子结构与玻纤编织带来的玻纤效应,在 10GHz 及以上高…

2026/7/29 0:55:42 阅读更多 →
大件空运包装闯关实录:ASTM D4169 DC-12 测试全解析

大件空运包装闯关实录:ASTM D4169 DC-12 测试全解析

一、分清赛道:DC-12 只给 “重型空运选手” 闯关ASTM D4169 就像物流界的闯关游戏,18 套分配周期对应不同运输赛道,DC-12 是空陆联运赛道里重型货物专属副本。 它有严格入场门槛:单件重量超 68.1 公斤,或是带托盘整装的…

2026/7/29 0:54:41 阅读更多 →

最新新闻

3分钟搞定Windows激活!KMS_VL_ALL_AIO智能激活工具完整指南

3分钟搞定Windows激活!KMS_VL_ALL_AIO智能激活工具完整指南

3分钟搞定Windows激活!KMS_VL_ALL_AIO智能激活工具完整指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活烦恼吗?每次开机看到激活提醒是不是让你…

2026/7/29 1:05:45 阅读更多 →
商标设计注册一体化攻略:从起名到拿证看这一篇就够了

商标设计注册一体化攻略:从起名到拿证看这一篇就够了

商标设计注册一体化攻略:从起名到拿证,看这一篇就够了“商标被驳回了,设计费白花了,产品包装也印了……”这是深圳很多创业者都经历过的噩梦。商标从创意到拿证,不是“画个Logo—提交申请—坐等拿证”那么简单。中间任…

2026/7/29 1:05:45 阅读更多 →
CTF流量分析终极指南:如何用CTF-NetA让复杂网络取证变得简单

CTF流量分析终极指南:如何用CTF-NetA让复杂网络取证变得简单

CTF流量分析终极指南:如何用CTF-NetA让复杂网络取证变得简单 【免费下载链接】CTF-NetA CTF-NetA是一款专门针对CTF比赛的网络流量分析工具,可以对常见的网络流量进行分析,快速自动获取flag。 项目地址: https://gitcode.com/gh_mirrors/ct…

2026/7/29 1:05:45 阅读更多 →
品牌出海通过马德里体系进行国际商标注册你了解吗?

品牌出海通过马德里体系进行国际商标注册你了解吗?

品牌出海第一步:通过马德里体系进行国际商标注册,你了解吗?深圳创业者们,如果你的品牌正准备出海,有一个问题必须提前想清楚:你的商标,在海外受保护吗?商标权有严格的地域性——在中…

2026/7/29 1:05:45 阅读更多 →
FlashDB超轻量级嵌入式数据库:从零到精通的完整指南

FlashDB超轻量级嵌入式数据库:从零到精通的完整指南

FlashDB超轻量级嵌入式数据库:从零到精通的完整指南 【免费下载链接】FlashDB An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库 项目地址: https://gitcode.com/gh_mirrors/fl/FlashD…

2026/7/29 1:05:45 阅读更多 →
SpringBoot实战:接口参数校验与优雅处理

SpringBoot实战:接口参数校验与优雅处理

接口参数校验是后端开发的第一道防线。与其在业务代码中写满 if (name null),不如使用 Spring Boot 提供的参数校验机制,让代码更简洁、逻辑更清晰。一、 为什么需要参数校验? 在早期的开发中,我们经常在 Service 层写大量的防御…

2026/7/29 1:04:45 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻