全书目录

第四篇:Spring Boot 完全指南 —— 政务大厅宇宙

第十章:Service —— 审批科真正处理业务

1 分钟 26 字 第 101 / 962 个阅读单元

真正的业务规则,不该写在 Controller 里。

java
package com.example.cityhall.permit;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class PermitService {

  private final PermitRepository permitRepository;

  public PermitService(PermitRepository permitRepository) {
    this.permitRepository = permitRepository;
  }

  @Transactional
  public PermitResponse create(CreatePermitRequest request) {
    PermitApplication permit = new PermitApplication(request.citizenName(), request.permitType());
    PermitApplication saved = permitRepository.save(permit);
    return new PermitResponse(saved.getId(), saved.getCitizenName(), saved.getPermitType(), "PENDING");
  }
}
text
HTTP Request
   │
   ▼
Controller    ← 窗口
   │
   ▼
Service       ← 审批科
   │
   ▼
Repository    ← 档案馆接口
   │
   ▼
Database      ← 档案库