Spring MVC项目中RestController包与类命名:Resource和Controller哪个是通用约定?
RestController 包名与类名通用约定
包名约定
Java后端生态中两种命名都有对应的使用场景,没有绝对的对错,区别主要适配不同的技术栈习惯:
- Spring 生态(Spring MVC、Spring Boot)下最通用的约定是使用
controller(复数controllers也很常见)作为包名,不管是返回视图的普通Controller还是返回JSON的RestController,默认都会放在这个包下,Spring官方示例、主流开源Spring项目基本都遵循这个约定。 resources作为RestController的存放包名,是JAX-RS技术栈(Jersey、RestEasy等实现)的通用习惯,这类框架本身就把REST接口定义为「资源」,所以包名和类名都会围绕resource命名。
快速选择原则:用Spring栈选
controller/controllers包,用JAX-RS栈选resources包即可。如果团队已有统一内部规范,优先遵循内部规范,保证项目内命名一致性比遵守通用约定优先级更高。
类名约定
类名选择逻辑和包名完全对齐:
- Spring 生态下命名为
UserController即可,符合全行业Spring开发者的普遍认知,看到名字就能明确这是REST接口的入口类。 - JAX-RS 生态下命名为
UserResource,匹配这类框架对REST资源的定义逻辑。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

