分享一个常用的命名规则和Spring的命名风格

目录

Spring 命名风格规范总结表

常用代码命名单词(通用且专业)

 命名技巧

一、返回布尔值的方法

二、条件执行方法

三、异步处理方法

四、回调方法

五、集合操作方法

六、状态校验方法

七、对象生命周期方法

八、数据操作方法


Spring 命名风格规范总结表

类别命名规则示例错误示例
包名全小写,按模块划分,使用 . 分隔com.example.demo.servicecom.Example.Service
类名PascalCase(大驼峰),根据功能添加后缀UserServiceOrderControlleruserServiceOrder_Controller
接口名PascalCase,通常不加 I 前缀UserServiceUserRepositoryIUserService
方法名camelCase(小驼峰),动词开头,语义清晰getUserById()deleteOrder()FetchUserData()UserfindById()
变量 & 参数名camelCase,布尔值用 ishas 开头userNameisActiveUser_Nameactive
Bean 名称默认类名首字母小写,可用 @Bean 指定@Service("userService")@Service("UserServiceImpl")
实体类(Entity)PascalCase,直接使用业务名称User, OrderUser_Entity
DTO(数据传输对象)业务名 + DTOUserDTOUser_Data_Transfer
VO(视图对象)业务名 + VOUserVOUserViewObj
Service 层业务名 + ServiceOrderServiceOrderServices
Controller 层业务名 + ControllerUserControllerUsersCtrl
Repository 层业务名 + RepositoryDaoUserRepositoryUserRepo
配置类业务名 + ConfigSecurityConfigSecConfig
拦截器业务名 + InterceptorAuthInterceptorAuthFilter
监听器业务名 + ListenerUserEventListenerUserListner
工具类业务名 + UtilUtilsDateUtil, JsonUtilsDateUtilityClass
切面(AOP)业务名 + AspectLoggingAspectLoggerAop
REST API URL资源名用复数,遵循 RESTful 规范/users/{id}/orders/getUserById/deleteUser
Spring Data JPA 方法findByXxx()deleteByXxx()countByXxx()findByEmail()deleteById()searchUserByEmail()

常用代码命名单词(通用且专业)

适用于 Java 开发,包括 Spring、工具类、设计模式等

单词含义常见用途示例
Abstract抽象抽象类或方法AbstractUserService, AbstractFactory
Adapter适配器适配不同接口的类JsonAdapter, DatabaseAdapter
Aggregator聚合器聚合多个数据源LogAggregator, MetricsAggregator
Analyzer分析器数据分析工具TextAnalyzer, ImageAnalyzer
Builder构造器生成复杂对象UserBuilder, QueryBuilder
Cache缓存临时存储数据UserCache, SessionCache
Collector采集器收集数据或日志MetricsCollector, LogCollector
Component组件可复用的模块RedisComponent, EmailComponent
Config / Configuration配置配置类SecurityConfig, AppConfiguration
Connector连接器连接外部系统DatabaseConnector, ApiConnector
Constants常量全局静态常量AppConstants, HttpConstants
Context上下文共享状态或环境信息ApplicationContext, ExecutionContext
Controller控制器处理请求UserController, ProductController
Converter转换器类型转换DateConverter, JsonConverter
Dispatcher调度器分发任务或请求EventDispatcher, TaskDispatcher
Engine引擎运行核心逻辑SearchEngine, RuleEngine
Executor执行器执行任务TaskExecutor, CommandExecutor
Factory工厂创建对象的类BeanFactory, ConnectionFactory
Filter过滤器过滤数据RequestFilter, LogFilter
Generator生成器生成唯一 ID、代码等IdGenerator, TokenGenerator
Handler处理器处理事件、异常等RequestHandler, ErrorHandler
Helper助手提供辅助方法JsonHelper, HttpHelper
Initializer初始化器进行系统或组件初始化AppInitializer, DatabaseInitializer
Interceptor拦截器拦截请求或数据流AuthInterceptor, LoggingInterceptor
Job任务定时任务或后台任务BackupJob, EmailJob
Loader加载器加载资源ConfigLoader, DataLoader
Manager管理器负责某个资源的管理UserManager, CacheManager
Mapper映射器处理对象转换UserMapper, DtoMapper
Mediator中介者协调多个对象交互EventMediator, ChatMediator
Monitor监控器监视系统状态ServiceMonitor, HealthMonitor
Observer观察者监听事件EventObserver, StateObserver
Parser解析器解析文本、数据JsonParser, XmlParser
Pipeline管道处理数据流ImageProcessingPipeline, DataPipeline
Processor处理器处理数据或任务OrderProcessor, PaymentProcessor
Provider提供者提供特定服务AuthProvider, PaymentProvider
Proxy代理控制访问对象HttpProxy, DatabaseProxy
Registry注册表维护映射关系ServiceRegistry, BeanRegistry
Renderer渲染器生成 UI 或图像HtmlRenderer, ChartRenderer
Resolver解析器处理依赖解析PathResolver, DependencyResolver
Scheduler调度器处理定时任务JobScheduler, TaskScheduler
Service服务业务逻辑层UserService, OrderService
Session会话管理用户会话UserSession, SessionManager
Singleton单例设计模式中的单例类LoggerSingleton, AppSingleton
Strategy策略处理不同策略CompressionStrategy, SortingStrategy
Task任务执行具体任务DataSyncTask, EmailTask
Tracker追踪器记录行为EventTracker, UserTracker
Transformer转换器数据转换DataTransformer, XmlToJsonTransformer
Utils / Util工具类提供通用方法DateUtils, StringUtil
Validator校验器处理数据验证InputValidator, PasswordValidator
Wrapper包装器对象封装ResponseWrapper, DataWrapper

 命名技巧

  1. 遵循 "对象 + 作用" 模式

    • UserManager(管理用户)

    •  OrderProcessor(处理订单)

    •  ManageUsers(动词开头不符合命名习惯)

  2. 避免冗余

    •  DateUtils(日期工具类)

    • DateUtilityClassUtilityClass 冗余)

  3. 遵循行业术语

    • TaskScheduler(定时任务调度)

    •  JwtProvider(JWT 令牌提供者)

    •  TokenThing(语义不明确)

一、返回布尔值的方法

位置前缀意义描述示例
前缀is对象是否处于预期状态isChecked
前缀can对象能否执行预期行为canRemove
前缀should执行某指令是否明智shouldMigrate
前缀has对象是否具有预期数据属性hasObservers
前缀needs调用者是否需要执行某指令needsMigrate

二、条件执行方法

位置词缀意义描述示例
后缀IfNeeded必要时执行,否则无操作drawIfNeeded
前缀might同上mightCreate
前缀try尝试执行,失败抛出异常/错误码tryCreate
后缀OrDefault失败返回默认值getOrDefault
后缀OrElse失败返回参数指定值getOrElse
前缀force强制执行,错误通过异常/返回值表示forceCreate

三、异步处理方法

类型词缀意义描述示例
前缀blocking阻塞线程执行blockingGetUser
后缀InBackground后台线程执行doInBackground
后缀Async异步方法sendAsync
后缀Sync同步方法(有对应异步版本)sendSync
前缀/词干schedule调度队列任务scheduleJob
前缀/词干post提交任务postJob
前缀/词干execute执行异步处理executeTask
前缀/词干start启动异步处理startJob
前缀/词干cancel取消异步处理cancelJob
前缀/词干stop停止异步处理stopJob

四、回调方法

前缀触发时机示例
on事件发生时触发onCompleted
before事件发生前触发beforeUpdate
pre同 beforepreUpdate
will同 beforewillUpdate
after事件发生后触发afterUpdate
post同 afterpostUpdate
did同 afterdidUpdate
should检查事件是否允许发生shouldUpdate

五、集合操作方法

方法功能描述示例
contains是否包含指定元素contains
add添加元素addJob
append尾部追加元素appendJob
insert在指定位置插入元素insertJob
put添加键值对元素putJob
remove删除元素removeJob
enqueue队列尾部添加元素enqueueJob
dequeue移除并返回队列头部元素dequeueJob
push压入栈顶pushJob
pop弹出栈顶元素popJob
peek查看栈顶元素(不移除)peekJob
find查找符合条件元素findById

六、状态校验方法

方法功能描述示例
ensure检查满足状态,否则抛出异常/错误码ensureCapacity
validate校验状态合法性,非法时抛出异常/错误码validateInputs

七、对象生命周期方法

方法功能描述示例
initialize初始化对象initialize
abandon主动释放资源abandon
destroy销毁对象destroy
dispose释放对象资源dispose

八、数据操作方法

方法功能描述示例
create创建新对象createAccount
new创建新实例newAccount
from根据已有数据构造新对象fromConfig
to数据转换toString
update更新已有数据updateAccount
load加载数据(本地)loadAccount
fetch获取数据(远程)fetchAccount
delete删除数据deleteAccount
remove移除数据removeAccount
save持久化保存saveAccount
store存储数据storeAccount
commit提交变更commitChange
apply应用变更applyChange
clear清空数据/恢复初始状态clearAll
reset重置数据/恢复初始状态resetAll

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Golang学习之旅】Go-zero + Gen:如何使用 Gen 提升 Go 开发效率

文章目录 前言一、Go-zero简介二、Gen工具简介2.1 Gen的功能与特点2.2 Gen的工作原理 三、Go-zero Gen:结合的优势3.1为什么选择Go-zero与Gen3.2 Gen的代码生成与Go-zero的结合点 四、实际案例:Go-zero Gen的应用4.1 构建一个用户管理系统4.2 定义Gen配…

软件工程----统一过程模型RUP

统一过程RUP是一种以用例驱动、以体系结构为核心、迭代和增量的软件开发过程,由UML方法和工具支持,广泛应用于各类面向对象项目。 RUP本身支持可裁剪性,可应付给类领域软件和不同的项目规模 RUP蕴含了大量优秀的实践方法,如&…

48V电气架构全面科普和解析:下一代智能电动汽车核心驱动

48V电气架构:下一代智能电动汽车核心驱动 随着全球汽车产业迈入电动化、智能化的新时代,传统12V电气系统逐渐暴露出其无法满足现代高功率需求的不足。在此背景下,48V电气架构应运而生,成为现代电动汽车(EV&#xff09…

图数据库 | 24、如何进行正确性验证?

图数据库计算和查询结果的正确性,这个重要性当然是不言而喻的! 老夫之前也写文章讲过,今天再手书一篇,旨在向大家系统地介绍一下图数据库查询与计算到底如何进行正确性验证!!! 图数据库中的操…

Rust ~ Vec<u8>和[u8]

Vec<u8> 和 &[u8] 是两种不同的数据类型&#xff0c;它们都与字节序列相关&#xff0c;但在所有权、内存管理、使用场景等方面存在明显区别 类型本质 Vec<u8>&#xff1a;Rust 中的动态数组类型&#xff0c;即向量&#xff08;vector&#xff09;。它是一个拥…

MYSQL学习笔记(十):约束介绍(如:非空、唯一、主键、外键、级联、默认、检查约束)

前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇讲解“约束”&#xff0c;如&#xff1a;非空、唯一、主键、外键、级联、默认…

树莓百度百科更新!宜宾园区业务再添新篇

树莓集团宜宾园区业务不断拓展&#xff0c;主要体现在以下几个方面&#xff1a; 产业布局 -聚焦数字经济核心领域&#xff1a;涵盖软件开发、人工智能、大数据等&#xff0c;吸引众多上下游企业入驻&#xff0c;形成从芯片研发、软件开发到系统集成的完整产业链条。 -推进“双…

Halcon 学习之路 set_grayval 算子

gen_imag_const 创建灰度图像 gen_image_const(Image&#xff0c;Type&#xff0c;Width&#xff0c;Height) 算子gen_image_const创建指定大小的图像&#xff0c;图像的宽度和高度由Width和Height决定 Type 像素类型 byte :每像素1字节&#xff0c;无符号&#xff08;0-255&…

03_pyqt5 + vlc 实现视频播放器

1.功能需求如图 按钮: 播放/暂停, 前进/后退, 视频上一个/下一个, 打开视频进度条: 视频进度条显示, 进度条拖拽, 音量控制按键控制: 1,2,3,4缩放画面大小, 2.方案选择 开发语言: python UI界面: pyqt5 qt_designed 设计ui布局 视频编码: python-vlc 方案说明: 视频解码可…

使用vscode导出Markdown的PDF无法显示数学公式的问题

我的硬件环境是M2的MacBook air&#xff0c;在vscode中使用了Markdown PDF来导出md文件对应的PDF。但不管导出html还是PDF文件&#xff0c;数学公式都是显示的源代码。 我看了许多教程&#xff0c;给的是这个方法&#xff1a;在md文件对应的html文件中加上以下代码&#xff1a…

Java 网络编程(二)—— TCP流套接字编程

TCP 和 UDP 的区别 在传输层&#xff0c;TCP 协议是有连接的&#xff0c;可靠传输&#xff0c;面向字节流&#xff0c;全双工 而UDP 协议是无连接的&#xff0c;不可靠传输&#xff0c;面向数据报&#xff0c;全双工 有连接和无连接的区别是在进行网络通信的时候&#xff0c;…

MySQL 事务笔记

MySQL 事务笔记 目录 事务简介事务操作事务四大特性并发事务问题事务隔离级别总结 事务简介 事务&#xff08;Transaction&#xff09;是数据库操作的逻辑单元&#xff0c;由一组不可分割的SQL操作组成。主要用于保证&#xff1a; 多个操作的原子性&#xff08;要么全部成功…

GPT1 与 GPT2 的异同

1.什么是GPT1&#xff1a; GPT1介绍了一种通过生成式预训练&#xff08;Generative Pre-Training&#xff09;来提升语言理解能力的方法。这种方法首先在一个大型的未标注文本语料库上进行语言模型的预训练&#xff0c;然后针对具体的任务进行判别式微调&#xff08;discrimin…

Android Audio其他——数字音频接口(附)

数字音频接口 DAI,即 Digital Audio Interfaces,顾名思义,DAI 表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI 在音频电路设计中得到越来越广泛的应用。 一、音频链路 1、模拟音频信号 可以看到在传统的…

kafka-leader -1问题解决

一. 问题&#xff1a; 在 Kafka 中&#xff0c;leader -1 通常表示分区的领导者副本尚未被选举出来&#xff0c;或者在获取领导者信息时出现了问题。以下是可能导致出现 kafka leader -1 的一些常见原因及相关分析&#xff1a; 1. 副本同步问题&#xff1a; 在 Kafka 集群中&…

DeepSeek基础之机器学习

文章目录 一、核心概念总结&#xff08;一&#xff09;机器学习基本定义&#xff08;二&#xff09;基本术语&#xff08;三&#xff09;假设空间&#xff08;四&#xff09;归纳偏好&#xff08;五&#xff09;“没有免费的午餐”定理&#xff08;NFL 定理&#xff09; 二、重…

【jira】用到几张表

jira用到的几张表 测试计划&#xff0c;测试周期&#xff0c;测试用例&#xff0c;问题记录 1. 测试计划 # 记录表&#xff0c;查计划详情 SELECT ID,issuenum,SUMMARY FROM jiraissue where issuenum 22871# 测试计划下&#xff0c;测试周期&#xff0c;查测试周期id&…

Mysql 死锁场景及解决方案

一、常见死锁场景 1. 不同顺序的锁获取 场景&#xff1a;事务A按顺序更新 行1 → 行2&#xff0c;事务B按 行2 → 行1 顺序更新。 原因&#xff1a;双方各持有一把锁&#xff0c;同时请求对方持有的锁&#xff0c;形成循环等待。 2. 索引缺失导致锁升级 场景&#xff1a;更…

Spring Boot从入门到精通:一站式掌握企业级开发

前言 Spring Boot作为Java领域最流行的微服务框架&#xff0c;凭借其约定优于配置的理念和快速启动的特性&#xff0c;极大简化了Spring应用的初始搭建和开发过程。本文将带你从零开始系统学习Spring Boot&#xff0c;最终实现精通级应用开发&#xff0c;涵盖核心原理、实战技…

【Go】十六、protobuf构建基础服务信息、grpc服务启动的基础信息

商品服务 服务结构 创建 goods 服务&#xff0c;将之前 user 服务的基本结构迁移到 goods 服务上&#xff0c;完整目录是&#xff1a; mxshop_srvs user_srv … tmp … goods_srv config config.go 配置的读取表 global global.go 数据库、日志初始化、全局变量定义 handler …