真正的业务规则,不该写在 Controller 里。
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");
}
}HTTP Request
│
▼
Controller ← 窗口
│
▼
Service ← 审批科
│
▼
Repository ← 档案馆接口
│
▼
Database ← 档案库