자주 사용하는 어노테이션 몇 가지를 정리한다.
@Controller
어노테이션이 붙은 클래스 ex "/joinForm" 경로로 들어오는 요청을 처리
@GetMapping
get요청을 컨트롤 하는 어노테이션.
@GetMapping("/joinForm")
뒤의 url로 들어오는 요청을 GET 처리@PostMapping
post요청을 컨트롤 하는 어노테이션.
@PostMapping("/join")
뒤의 url로 들어오는 요청을 POST 처리@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
데이터베이스에 엔티티가 저장될 때 마다 그 시점의 시간을 업데이트함.
위의 어노테이션을 사용하기 위해선 jpa 라이브러리가 필요하다.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
@Repository
@Repository
어노테이션이 부여된 클래스는 Spring의 컴포넌트 스캔에 의해 자동으로 빈(Bean)으로 등록되며, 다른 클래스에서 이 빈을 주입받아 사용할 수 있다.@Transactional
메소드나 클래스에 부여하면 해당 메소드 또는 클래스의 메소드들이 트랜잭션으로 묶이게 되어, 일괄적인 트랜잭션 처리가 가능해진다.
쿼리문에서 2개 이상의 커리를 하나의 커넥션으로 묶어 DB에 전송, 에러가 발생할 경우 모든 과정은 원래대로 돌려놓는다. 데이터베이스를 변경하지 않는 select 문은 필요없음.
@AllArgsConstructor
모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성
@RequiredArgsConstructor
final이나 @NonNull으로 선언된 필드만을 파라미터로 받는 생성자를 자동으로 생성
의존성 주입을 할때 기본 생성자가 호출되면 오류가 난다. 그때
@RequiredArgsConstructor
에 final 을 사용한다. 생성자를 별도로 만들어도 된다.@PathVariable
URL 템플릿 변수를 추출하는 데 사용
변수 id 를 추적해 url 에 대입해줌.
@RequestParam
HTTP 요청 파라미터를 메서드의 파라미터로 바인딩하는 데 사용된다.
Http 요청 파라미터를
@RequestParam
으로 쉽게 받을 수 있다.@Component
클래스를 컨포넌트 스캔 시 IoC컨테이너에 담아줌. 필요할 때 new 로 객체를 만들지 않고 의존성 주입으로 사용할 수 있음.
Share article