随笔 - 750  文章 - 1  评论 - 107  阅读 - 34万

【转】[Java] 入参、出参、数据库实体等命名规则

转自:kimi.ai

在Java 项目中,为了提高代码的可读性和可维护性,通常会对入参、出参和数据库实体等使用特定的后缀。以下是一些常见的命名规则和最佳实践:

1. 入参(Request DTOs)

  • 后缀:Request 或 Dto
  • 描述:入参通常是指从客户端接收的数据传输对象(DTOs),用于封装请求参数。
  • 示例:
    • UserCreateRequest
    • UserUpdateRequest
    • UserDto(如果上下文明确是请求参数)

2. 出参(Response DTOs)

  • 后缀:Response 或 Dto
  • 描述:出参是指发送给客户端的数据传输对象(DTOs),用于封装响应数据。
  • 示例:
    • UserResponse
    • UserListResponse
    • UserDto(如果上下文明确是响应数据)

3. 数据库实体(Entities)

  • 后缀:Entity
  • 描述:数据库实体类通常对应数据库表,用于表示持久化对象。
  • 示例:
    • UserEntity
    • OrderEntity
    • ProductEntity

4. 服务层对象(Service Objects)

  • 后缀:Service
  • 描述:服务层类通常包含业务逻辑,用于处理请求并调用数据访问层。
  • 示例:
    • UserService
    • OrderService
    • ProductService

5. 数据访问层对象(Repository Objects)

  • 后缀:Repository
  • 描述:数据访问层类通常用于与数据库交互,执行CRUD操作。
  • 示例:
    • UserRepository
    • OrderRepository
    • ProductRepository

6. 控制器层对象(Controller Objects)

  • 后缀:Controller
  • 描述:控制器层类通常处理HTTP请求,调用服务层并返回响应。
  • 示例:
    • UserController
    • OrderController
    • ProductController

示例项目结构

假设你有一个用户管理模块,以下是一个典型的项目结构示例:

 
com/
└── example/
    └── projectname/
        ├── controller/
        │   └── UserController.java
        ├── service/
        │   └── UserService.java
        ├── repository/
        │   └── UserRepository.java
        ├── model/
        │   └── UserEntity.java
        ├── dto/
        │   ├── UserCreateRequest.java
        │   ├── UserUpdateRequest.java
        │   ├── UserResponse.java
        │   └── UserListResponse.java
        └── config/
            └── AppConfig.java

示例代码

实体类(Entity)

java
package com.example.projectname.model;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "users")
public class UserEntity {
    @Id
    private Long id;
    private String name;
    private int age;

    // Getters and Setters
}

请求DTO(Request DTO)

java
package com.example.projectname.dto;

public class UserCreateRequest {
    private String name;
    private int age;

    // Getters and Setters
}

响应DTO(Response DTO)

java
package com.example.projectname.dto;

public class UserResponse {
    private Long id;
    private String name;
    private int age;

    // Getters and Setters
}

服务层类(Service)

java
package com.example.projectname.service;

import com.example.projectname.dto.UserCreateRequest;
import com.example.projectname.dto.UserResponse;

public interface UserService {
    UserResponse createUser(UserCreateRequest request);
}

数据访问层类(Repository)

java
package com.example.projectname.repository;

import com.example.projectname.model.UserEntity;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<UserEntity, Long> {
}

控制器层类(Controller)

java
package com.example.projectname.controller;

import com.example.projectname.dto.UserCreateRequest;
import com.example.projectname.dto.UserResponse;
import com.example.projectname.service.UserService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    private final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }

    @PostMapping("/users")
    public UserResponse createUser(@RequestBody UserCreateRequest request) {
        return userService.createUser(request);
    }
}

总结

在Java Spring项目中,使用特定的后缀来命名入参、出参和数据库实体等可以提高代码的可读性和可维护性。这些命名规则在团队协作中尤为重要,有助于保持代码的一致性和清晰性。

posted on   z5337  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示