반응형
서비스는 컨트롤러와 레파지토리 사이에서 중간 단계로서, 비즈니스 로직을 처리하는 역할을 합니다. 스프링부트에서는 @Service 어노테이션을 사용하여 서비스를 정의하며, 다음과 같은 특징을 가지고 있습니다.
- 비즈니스 로직을 처리하는 역할을 수행합니다.
서비스는 컨트롤러에서 받은 요청을 처리하고, 레파지토리에서 반환한 데이터를 가공하여 결과를 반환합니다. 예를 들어, 게시판 서비스에서는 게시글 등록, 수정, 삭제 등의 작업을 수행합니다.
- 레파지토리와 컨트롤러 사이에서 중개 역할을 수행합니다.
서비스는 레파지토리에서 반환된 데이터를 가공하거나, 여러 개의 레파지토리를 동시에 사용하는 작업 등을 처리합니다. 또한, 컨트롤러와 레파지토리 사이에서 데이터의 전달과 반환을 관리합니다.
- 여러 개의 레파지토리를 사용하는 작업을 처리할 수 있습니다.
서비스는 여러 개의 레파지토리를 사용하여 데이터를 처리할 수 있습니다. 예를 들어, 게시판 서비스에서는 게시글 레파지토리와 댓글 레파지토리를 모두 사용하여 게시글과 댓글 데이터를 처리합니다.
- 트랜잭션 관리를 수행합니다.
서비스에서는 여러 개의 레파지토리를 사용할 수 있기 때문에, 트랜잭션 관리가 중요한 역할을 수행합니다. 스프링에서는 @Transactional 어노테이션을 사용하여 트랜잭션을 관리합니다.
컨트롤러에서는 서비스를 호출하여 비즈니스 로직을 처리하고, 뷰로 결과를 반환합니다. 이 때, 서비스에서는 레파지토리와 연동하여 데이터를 처리합니다. 예를 들어, 게시판 서비스에서는 게시글 등록 작업을 수행하는 메서드를 다음과 같이 정의할 수 있습니다.
@Service
public class BoardService {
@Autowired
private BoardRepository boardRepository;
@Autowired
private CommentRepository commentRepository;
@Transactional
public void addBoard(BoardDto boardDto) {
Board board = new Board();
board.setTitle(boardDto.getTitle());
board.setContent(boardDto.getContent());
board.setWriter(boardDto.getWriter());
board.setRegDate(LocalDateTime.now());
boardRepository.save
'Spring > Spring boot' 카테고리의 다른 글
[SpringBoot] 스프링부트의 특징 (0) | 2023.03.09 |
---|---|
[SpringBoot] 스프링부트 Repository (0) | 2023.03.09 |
[SpringBoot] 스프링부트 Controller (0) | 2023.03.09 |
[SpringBoot] 스프링부트 Spring Boot란? (0) | 2023.03.09 |
[SpringBoot] 스프링부트 JPA(Java Persistence API) 학습하기 (0) | 2023.03.09 |