inblog logo
|
{CODE-RYU};
    SPIRNG

    Sping 어노테이션 정리

    Feb 04, 2024
    Sping 어노테이션 정리
    Contents
    @Controller@GetMapping @PostMapping@Entity@Id @GeneratedValue@Table@Column@Data @CreationTimestamp@Repository@Transactional@AllArgsConstructor@RequiredArgsConstructor@PathVariable@RequestParam@Component
     
    리플렉션(Reflection)과 어노테이션(Annotation) - {CODE-RYU};
    JDBC
    리플렉션(Reflection)과 어노테이션(Annotation) - {CODE-RYU};
    https://inblog.ai/coderyu1/리플렉션reflection-14979?traffic_type=internal
    리플렉션(Reflection)과 어노테이션(Annotation) - {CODE-RYU};
     
    자주 사용하는 어노테이션 몇 가지를 정리한다.
     

    @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

    {CODE-RYU};

    RSS·Powered by Inblog