classDiagram
direction TB
class UserController {
+UserService userService
+ResponseEntity getUser(Long id)
+ResponseEntity createUser(UserDTO dto)
+ResponseEntity updateUser(Long id, UserDTO dto)
+ResponseEntity deleteUser(Long id)
}
class UserService {
<<interface>>
+UserDTO getUserById(Long id)
+UserDTO createUser(UserDTO dto)
+UserDTO updateUser(Long id, UserDTO dto)
+void deleteUser(Long id)
}
class UserServiceImpl {
+UserRepository userRepository
+UserMapper userMapper
+getUserById(Long id) UserDTO
+createUser(UserDTO dto) UserDTO
}
class UserRepository {
<<interface>>
+extends JpaRepository~User, Long~
+Optional~User~ findByEmail(String email)
+List~User~ findByStatus(UserStatus status)
}
class User {
+Long id
+String username
+String email
+String passwordHash
+UserStatus status
+Date createdAt
+boolean isActive()
}
class UserDTO {
+Long id
+String username
+String email
+UserStatus status
}
class UserMapper {
<<interface>>
+User toEntity(UserDTO dto)
+UserDTO toDTO(User entity)
+void updateEntity(UserDTO dto, User entity)
}
class UserMapperImpl {
+User toEntity(UserDTO dto)
+UserDTO toDTO(User entity)
}
UserController --> UserService
UserService <|.. UserServiceImpl
UserServiceImpl --> UserRepository
UserServiceImpl --> UserMapper
UserRepository ..> User
UserMapper <|.. UserMapperImpl
UserMapperImpl ..> User
UserMapperImpl ..> UserDTO
UserDTO ..> User
note for UserController "@RestController
处理HTTP请求"
note for UserService "业务逻辑接口"
note for UserServiceImpl "@Service
业务逻辑实现"
note for UserRepository "@Repository
数据访问层"
note for User "@Entity
数据库实体"