Service
비즈니스 로직을 처리하는 컴포넌트
- 컨트롤러와 리파지토리 사이에서 중재 역할을 함
- `@Service`로 서비스 등록
@Service
public class AttachmentService {
@Autowired
private AttachmentDao attachmentDao;
public int save(MultipartFile attach) throws IllegalStateException, IOException {
if (attach.isEmpty()) return -1;
File dir = new File("D:/upload");
dir.mkdirs();
int attachmentNo = attachmentDao.sequence();
File target = new File(dir, String.valueOf(attachmentNo));
attach.transferTo(target);
AttachmentDto attachmentDto = new AttachmentDto();
attachmentDto.setAttachmentNo(attachmentNo);
attachmentDto.setAttachmentName(attach.getOriginalFilename());
attachmentDto.setAttachmentType(attach.getContentType());
attachmentDto.setAttachmentSize(attach.getSize());
attachmentDao.insert(attachmentDto);
return attachmentNo;
}
}
Service 역할
비즈니스 로직 처리
애플리케이션의 주요 비즈니스 규칙 구현
- 데이터를 검증하거나 계산하는 등의 작업
단일 책임 원칙
하나의 비즈니스 로직에 집중
Service 장점
유지보수성
비즈니스 로직을 한 곳에 집중시켜 유지보수성 높임
테스트 용이성
클래스를 독립적인 단위로 테스트
재사용성
여러 곳에서 재사용할 수 있음
'Java > Spring Boot' 카테고리의 다른 글
[Java / Spring Boot] ControllerAdvice (1) | 2025.02.11 |
---|---|
[Java / Spring Boot] 파일 첨부 (0) | 2025.02.10 |
[Java / Spring Boot] DBCP (0) | 2025.02.10 |
[Java / Spring Boot] AOP와 Interceptor, Configuration (2) | 2025.01.15 |
[Java / Spring Boot] Session (0) | 2025.01.15 |