spring annotation 정리2 @Service

2023. 1. 8. 03:51spring

안녕하세요. spring으로 프로젝트를 진행하면서 백엔드 개발자를 준비하고 있는 학생입니다. 공부를 하면서 어노테이션의 역할을 잘 모르고 사용하는 경우가 많아서 제가 이해가 편하도록 정리를 해보려고 합니다. 글을 읽고 나서 잘못된 점이나 부족한 점 댓글로 알려주시면 감사하겠습니다.

 

service란?

controller로 부터 응답을 받은 비즈니스 로직을 처리한 후 repository로 넘겨주는 역할을 한다.

 

의존성 주입하는 방법

생성자 주입을 통해 의존성을 주입하는 방법을 권장하는데 그중 @RequiredArgsConstructor를 사용하는 방법이 좋습니다.

@RequiredArgsConstructor
@Service
public class ItemsService {

    private final ItemsRepository itemsRepository;
}

 

@transactional

1. 한가지 역할을 하는 코드를 한 단위로 묶어서 작업을 처리하는 방법

2. 중간에 오류가 발생했을 때 작업 이전으로 돌려주는 역할을 한다.

 

사용방법

@Transactional(readOnly = true)
public ItemsReadUpdateResponseDto findById(Long id) {
    Items items = itemsRepository.findById(id).orElseThrow(() -> new ItemsException(BAD_REQUEST_ITEMS_READ));

    return new ItemsReadUpdateResponseDto(items);
}