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 |
댓글