[SpringBoot 구조] Service 설명 및 정의 / 어노테이션

2023. 12. 31. 11:23SpringBoot+JPA

반응형

 

 

[SpringBoot 구조] Entity 설명 및 정의 / 어노테이션

더보기 [목차] - Entity 정의 - Entity 구조 - Entity에 사용되는 어노테이션 종류 Entity 정의 자바 어플리케이션에서 관계형 데이터베이스의 데이터를 객체로 표현하는 데 사용 엔터티 객체를 통해 데

dalhyehye.tistory.com

 

 

[SpringBoot 구조] DTO 설명 및 정의 / 어노테이션

DTO 정의 클라이언트와 서버 간의 데이터 전송을 위해 사용되는 객체 데이터베이스에서 가져온 데이터나 서비스 간의 통신에 필요한 데이터를 담고 있는 객체 교환할 자료에 따라 여러 개로 구

dalhyehye.tistory.com

 

 

[SpringBoot 구조] Repository 설명 및 정의 / 어노테이션

[SpringBoot 구조] Entity 설명 및 정의 / 어노테이션 더보기 [목차] - Entity 정의 - Entity 구조 - Entity에 사용되는 어노테이션 종류 Entity 정의 자바 어플리케이션에서 관계형 데이터베이스의 데이터를 객

dalhyehye.tistory.com

 

 

Service 정의

데이터베이스에서 가져온 비즈니스 로직을 처리

Repository로부터 데이터를 가져와 가공한 후 컨트롤러에게 전달하는 역할을 수행

 

Service를 사용하면 Controller가 비즈니스 로직에 집중하고,

데이터베이스와의 상호작용은 Repository에서 처리함으로써

코드의 모듈화와 유지보수성이 향상

 

 

 

Service 구조 및 작성 방법

@Service
@Transactional
@RequiredArgsConstructor
public class ProductService {

  private final ProductRepository productRepository;
  private final ModelMapper modelMapper = new ModelMapper();

  //Create 생성
  public ProductEntity insert(ProductDTO productDTO) throws Exception {

    ProductEntity productEntity = modelMapper.map(productDTO, ProductEntity.class);
    productRepository.save(productEntity);

    return productEntity;

  	}
    
  }

 

 

 

Service 사용 어노테이션

@Service 해당 클래스가 서비스 역할을 한다는 것을 나타냄
@Transactional 트랜잭션을 관리

메서드 실행 중에 예외가 발생하면 롤백
예외가 발생하지 않으면 커밋

 

 

JPA에서 기본 제공하는 메소드 (선언x,생성x)

Service에서 바로 사용이 가능한 메소드

save() 레코드(DTO)를 저장, 수정

delete( ) 레코드를 삭제
findByOne( ) 하나의 레코드를 조회 - 로그인, 수정자료
fingByAll( ) 모든 레코드를 조회
count( ) 레코드의 개수

 

 

ModelMapper

객체 간의 매핑을 담당하는 라이브러리

 

DTO와 Entity 간의 매핑을 담당

 

컨트롤러에서 받은 DTO를 서비스로 전달하기 전에 엔티티로 변환하거나,

서비스에서 받은 엔티티를 클라이언트에게 전달하기 전에 DTO로 변환하는 역할

 

데이터의 형식을 변환하면서 필요한 정보만을 주고 받음

 

반응형