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:58阅读更多 →
超低损耗 PTFE 复合介质芯层,广氟 GFN 系列构筑高频 PCB 基材国产化核心壁垒

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

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

2026/7/29 0:55:58阅读更多 →
全网资源一键捕获:使用res-downloader的完整跨平台下载指南

全网资源一键捕获:使用res-downloader的完整跨平台下载指南

全网资源一键捕获:使用res-downloader的完整跨平台下载指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数字…

2026/7/29 0:55:58阅读更多 →
吴恩达提示词工程实践指南:从基础概念到代码生成实战

吴恩达提示词工程实践指南:从基础概念到代码生成实战

如果你还在为写不出高质量的提示词而苦恼,或者觉得AI总是无法理解你的真实意图,那么吴恩达的《提示词工程》课程可能是你一直在寻找的答案。这不是又一套枯燥的理论教程,而是一套真正从实践出发、能够立即提升你与大模型交互效率的实用指南。…

2026/7/29 2:12:16阅读更多 →
161、NPU的编译器开发:内存布局优化

161、NPU的编译器开发:内存布局优化

好的,我们开始。 161、NPU的编译器开发:内存布局优化 从一次诡异的“算对但跑不对”说起 几年前调试一个轻量级检测网络,模型在PC端仿真器上精度完全达标,一部署到某款自研NPU上,输出特征图就出现周期性的“条纹状”错误。不是全错,是每隔几行数据就跳变一次,像有人把…

2026/7/29 2:12:16阅读更多 →
Cortex M7-TRM 翻译系列之ITM(十二)

Cortex M7-TRM 翻译系列之ITM(十二)

12 指令跟踪宏单元(ITM)12.1 ITM概述仪器跟踪宏单元(ITM)是可选的、由应用程序驱动的跟踪源,支持类似 printf 打印风格的调试手段,可用于跟踪操作系统与应用程序事件,并输出系统诊断信息。12.2 ITM功能描述ITM 以数据包…

2026/7/29 2:12:16阅读更多 →
PDF批量编辑技巧:框选区域对象的删除与移动操作指南

PDF批量编辑技巧:框选区域对象的删除与移动操作指南

这次我们来看一个非常实用的PDF编辑技巧——如何批量删除和移动框选区域内的对象。对于经常处理PDF文档的技术人员、办公人员或学生来说,这个功能能极大提升文档处理效率,特别是在处理大量相似结构的PDF文件时。PDF文档的编辑一直是很多人的痛点&#xf…

2026/7/29 2:12:16阅读更多 →
OpenObserve生产环境安全配置实战:TLS加密与身份验证全指南

OpenObserve生产环境安全配置实战:TLS加密与身份验证全指南

1. 项目概述:为什么OpenObserve的安全配置不容忽视?最近在部署和运维OpenObserve时,我遇到了不少关于安全访问的咨询。很多团队在快速上手这款高性能的日志、指标和追踪数据平台后,往往只关注其强大的查询和压缩能力,却…

2026/7/29 2:12:16阅读更多 →
华为非AI方向笔试真题 7月24号【最优河堤加固方案】

华为非AI方向笔试真题 7月24号【最优河堤加固方案】

最优河堤加固方案(C/Py/Java/Js/Go)题解华为笔试真题 7月24号 非AI方向第一题 100分题型题目内容 一个数组代表河堤的高度,堤坝是等长、等宽的,现在需要在不超过最大预算的前提下,尽可能的加固河堤使最低高度,所有加固的土只能通过…

2026/7/29 2:10:16阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“! 在构建复杂的 Agent 系统时,我们经常会遇到这样的场景:Agent 正在执行一个多步骤的任务,比如“下单购买商品”,但执行到一半时,我们…

2026/7/29 0:01:46阅读更多 →
自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…

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

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

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

2026/7/29 0:01:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →