본문 바로가기
Spring

Spring 사용 시 어노테이션 정리 + JpaRepository 기본 메서드

by KDW999 2023. 4. 4.

Spring으로 작업하다 만나게 된 기능과 어노테이션이 다 기억 안나서 대충이라도 적어두려고 한다.

 

@Configuration : Spring의 Configuration으로 등록

 

@EnnableWebSecurity : WebSecurity와 관련된 작업

 

@RestController : 해당 클래스를 REST API로 사용되는 Controller로 지정할 수 있다.

Controller = react의 route와 비슷?

 

@RequestMapping(연결 URL) : 해당 클래스를 특정 Request URL 패턴에서 사용하도록 지정

 

@Autowired 클래스명 인스턴스명 : 인스턴스 생성 작업 처리 / @Component로 지정된 클래스의 생성 작업 처리?

 

@PathVariable(path) : GET / DELETE 방식에서 사용 / URL Path로 클라이언트로부터 데이터를 받아서 변수로 사용

 

@GetMapping() : HTTP 메서드 중 GET 방식의 요청에 대한 처리 지정

 

@PostMapping() : HTTP 메서드 중 Post 방식의 요청에 대한 처리 지정

 

@RequestBody : POST / PATCH 방식에서 사용 / 클라이언트로 부터 request body로 데이터를 받고자 할 때 사용

+ request body, response body로 객체를 담을 때는 Dto를 사용해서 전송 혹은 수신

 

@PatchMapping() : HTTP 메서드 중 Patch 방식의 요청에 대한 처리 지정

 

@DeleteMapping() : HTTP 메서드 중 Delete 방식의 요청에 대한 처리 지정

 

@Data : getter, setter, toString 생성 (Lombok)

 

@AllArgsConstructor : 해당 클래스의 필드 변수들을 받는 생성자 생성 (Lombok)

 

@NoArgsConstructor : 빈 생성자 생성 (Lombok)

 

@Id : 해당 필드를 Primary key로 지정

 

@Entity(name = "Entity명") : DB 테이블에 상응하는 Entity class를 지정

→ ORM이 해당 어노테이션을 작성된 class를 특정 테이블에 매핑되도록 함

 

@Table(name = "Table명") : 해당 Entity의 테이블명을 지정하기 위한 어노테이션

@Table을 추가하지 않으면 @Entity의 Entity명을 따라  테이블 명을 지정

 

@Builder : Builder 패턴 생성 (Lombok)

Builder 패턴 : 생성자로 특정한 필드를 지정해서 필드들만 초기화 하는 것이 아닌 생성하는 순간에 초기화할 필드를 지정해서 인스턴스를 생성해주는 패턴

→ 클래스명.builder().필드명(초기화할 데이터)[...].build();

 

@GeneratedValue(...) : 필드의 값을 자동으로 생성해주기

strategy = GenerationType.IDENTITY : AUTO_INCREMENT

 

@Repository : 해당 인터페이스를 Repository로 사용하도록 지정

 

JpaRepository<T, ID> : 해당 인터페이스를 상속받은 인터페이스를 JPA Query Creation을 사용할 수 있도록 하는 인터페이스

T : DB의 테이블을 구현한 Entity Class

ID :해당 Entity의 Primary Key 타입

JpaRepository를 상속한 Repository 인터페이스에서는 추상 메서드로 쿼리 실행문 작성 가능

메서드명을 규칙에 따라 작성해주면 JpaRepository가 알아서 SQL을 작성하고 실행해준다. 

 

@Service : 실제 비즈니스 로직을 담당하는 레이어 / 일반적인 연산 작업 / Controller로 부터 사용자의 입력을 받아오면 해당 기능을 진행하기 위해 Repository에서 데이터를 가져와 작업을 진행한다.

 

@Value : application.properties에 있는 데이터 사용 가능

 

JpaRepository 기본 메서드

findById(PK).get() → 해당 테이블에서 PK를 기준으로 검색한 결과 반환

 

findAll() → 해당 테이블의 모든 레코드를 검색한 결과 반환

 

save(entityInstance) → 해당 테이블에 특정 레코드를 삽입 혹은 수정

PK를 기준으로 PK에 해당하는 레코드가 없으면 삽입, 있으면 수정

 

existsById(PK) → 해당 테이블의 PK를 기준으로 레코드가 존재한다면 true 반환, 존재하지 않으면 false 반환

 

deleteById(PK) → 해당 테이블의 PK를 기준으로 특정 레코드 삭제

'Spring' 카테고리의 다른 글

Entity, DTO, VO, Controller, Service, Repository, GET, POST 등  (0) 2023.03.09
Repository  (1) 2023.03.06
JPA  (0) 2023.03.06
Service  (0) 2023.03.06
Controller / DTO  (0) 2023.03.05

댓글