Sping 어노테이션 정리

Feb 04, 2024
Sping 어노테이션 정리
 
 
자주 사용하는 어노테이션 몇 가지를 정리한다.
 

@Controller

 
어노테이션이 붙은 클래스 ex "/joinForm" 경로로 들어오는 요청을 처리
 

@GetMapping

 
get요청을 컨트롤 하는 어노테이션. @GetMapping("/joinForm") 뒤의 url로 들어오는 요청을 GET 처리
 

@PostMapping

post요청을 컨트롤 하는 어노테이션. @PostMapping("/join") 뒤의 url로 들어오는 요청을 POST 처리
 
notion image
 
 

@Entity

테이블과 클래스를 매핑시킴. primary key 가 있어야 함.

@Id

primary key 지정
 

@GeneratedValue

기본 키(primary key) 필드의 값을 자동으로 생성하는 전략을 지정할 때 사용.
@GeneratedValue(strategy = GenerationType.IDENTITY) 이렇게 사용.

@Table

 
@Table(name="user_tb") 를 예로 들면, 해당 클래스가 데이터베이스에서 user_tb 테이블과 매핑되는 것을 나타냄.
 

@Column

 
필드의 속성 값을 정할 수 있음. @Column(unique = true) 은 해당 필드가 유니크 속성임을 뜻한다.
 

@Data

 
기본 생성자, Getter, Setter 를 만들어줌
 

@CreationTimestamp

 
데이터베이스에 엔티티가 저장될 때 마다 그 시점의 시간을 업데이트함.
 
notion image
 
💡
위의 어노테이션을 사용하기 위해선 jpa 라이브러리가 필요하다.
 
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
 

@Repository

@Repository 어노테이션이 부여된 클래스는 Spring의 컴포넌트 스캔에 의해 자동으로 빈(Bean)으로 등록되며, 다른 클래스에서 이 빈을 주입받아 사용할 수 있다.
 

@Transactional

 
메소드나 클래스에 부여하면 해당 메소드 또는 클래스의 메소드들이 트랜잭션으로 묶이게 되어, 일괄적인 트랜잭션 처리가 가능해진다.
 
쿼리문에서 2개 이상의 커리를 하나의 커넥션으로 묶어 DB에 전송, 에러가 발생할 경우 모든 과정은 원래대로 돌려놓는다. 데이터베이스를 변경하지 않는 select 문은 필요없음.
 
notion image
 
 

@AllArgsConstructor

모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성
 
notion image

@RequiredArgsConstructor

final이나 @NonNull으로 선언된 필드만을 파라미터로 받는 생성자를 자동으로 생성
 
notion image
 
💡
의존성 주입을 할때 기본 생성자가 호출되면 오류가 난다. 그때 @RequiredArgsConstructor 에 final 을 사용한다. 생성자를 별도로 만들어도 된다.
 

@PathVariable

URL 템플릿 변수를 추출하는 데 사용
 
notion image
 
변수 id 를 추적해 url 에 대입해줌.
 

@RequestParam

HTTP 요청 파라미터를 메서드의 파라미터로 바인딩하는 데 사용된다.
notion image
 
Http 요청 파라미터를 @RequestParam 으로 쉽게 받을 수 있다.
 
notion image
 

@Component

클래스를 컨포넌트 스캔 시 IoC컨테이너에 담아줌. 필요할 때 new 로 객체를 만들지 않고 의존성 주입으로 사용할 수 있음.
notion image
Share article
RSSPowered by inblog