ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] 스프링 주요 어노테이션 정리
    Programming Language/Spring 2021. 9. 13. 01:41
    반응형

    @RestController

    • 컨트롤러를 JSON을 반환하는 컨트롤러로 만들어줍니다.'

    @GetMapping

    • HTTP Method인 Get의 요청을 받을 수 있는 API를 만들어 줍니다.
    • 예전에는 @RequestMapping(method = RequestMethod.GET)으로 사용되었습니다.

    @RunWith(SpringRunner.class)

    • 테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자를 실행시킵니다.
    • 여기서는 SpringRunner라는 스프링 실행자를 사용합니다.
    • 즉 스프링부트 테스트와 JUnit 사이에 연결자 역할을 합니다.

    @WebMvcTest

    • 여러 스프링 테스트 어노테이션 중, Web(Spring MVC)에 집중할 수 있는 어노테이션 입니다.

    @Autowired

    • 스프링이 관리하는 빈(Bean)을 주입 받습니다.

    @Getter

    • 선언된 모든 필드의 get 메소드를 생성해줍니다.

    @RequiredArgsConstructor

    • 선언된 모든 final 필드가 포함된 생성자를 생성해 줍니다.
    • final이 없는 필드는 생성자에 포함되지 않습니다.

    @Entity

    • 테이블과 링크될 클래스임을 나타냅니다.
    • 기본값으로 클래스의 카멜케이스 이름을 언더스코어 네이밍(_)으로 테이블 이름을 매칭합니다.
    • ex) SalesManager.java -> sales_manager table

    @Id

    • 해당 테이블의 PK 필드를 나타냅니다.

    @GeneratedValue

    • PK의 생성 규칙을 나타냅니다.
    • 스프링부트 2.0에서는 GenerationType.IDENTITI 옵션을 추가해야만 auto_increment가 됩니다.

    @Column

    • 테이블의 칼럼을 나타내며 굳이 선언하지 않더라도 해당 클래스의 필드는 모두 칼럼이 됩니다.
    • 사용하는 이유는, 기본값 외에 추가로 변경이 필요한 옵션이 있으면 사용합니다.
    • 문자열의 경우 VARCHAR(255)가 기본 값인데, 사이즈를 500으로 늘리고싶거나 (ex: title) 타입을 TEXT로 변경하고 싶거나(ex: content) 등의 경우에 사용됩니다.

    @NoArgsConstructor

    • 기본 생성자 자동 추가
    • public Posts() {}와 같은 효과

    @Getter

    • 클래스 내 모든 필드의 Getter 메소드를 자동 생성

    @Builder

    • 해당 클래스의 빌더 패턴 클래스를 생성
    • 생성자 상단에 선언 시 생성자에 포함된 필드만 빌더에 포함

    @After

    • JUnit에서 단위 테스트가 끝날 때마다 수행되는 메소드를 지정
    • 보통은 배포 전 전체 테스트를 수행할 때 테스트 간 데이터 침범을 막기 위해 사용합니다.
    • 여러 테스트가 동시에 수행되면 테스트용 데이터베이스인 H2에 데이터가 그대로 남아 있어 다음 테스트 실행 시 테스트가 실패할 수 있습니다.

    postsRepository.save

    • 테이블 posts에 insert/update 쿼리를 실행합니다.
    • id값이 있다면 update가, 없다면 insert 쿼리가 실행됩니다.

    postsRepository.findAll

    • 테이블 posts에 있는 모든 데이터를 조회해오는 메소드입니다.

    @MappedSuperclass

    • JPA Entity 클래스들이 BaseTimeEntity을 상속할 경우 필드들(createDate, modifiedDate)도 칼럼으로 인식하도록 합니다.

    @EntityListeners(AuditingEntityListener.class)

    • BaseTimeEntity 클래스에 Auditing 기능을 포함시킵니다.

    @CreatedDate

    • Entity가 생성되어 저장될 때 시간이 자동 저장됩니다.

    @LastModifiedDate

    • 조회한 Entity의 값을 변경할 때 시간이 자동 저장됩니다.

    $('#btn-update').on('click')

    • btn-update란 id를 가진 HTML 엘리먼트에 click 이벤트가 발생할 때 update function을 실행하도록 이벤트를 등록합니다.

    postsRepository.delete(posts)

    • JpaRepository에서 이미 delete 메소드를 지원하고 있으니 이를 활용합니다.
    • 엔티티를 파라미터로 삭제할 수도 있고, deleteById 메소드를 이용하면 id로 삭제할 수도 있습니다.
    • 존재하는 Posts인지 확인을 위해 엔티티 조회 후 그대로 삭제합니다.

    @Target(ElementType.PARAMETER)

    • 이 어노테이션이 생성될 수 있는 위치를 지정합니다.
    • PARAMETER로 지정했으니 메소드의 파라미터로 선언된 객체에서만 사용할 수 있습니다.
    • 이 외에도 클래스 선언문에 쓸 수 있는 TYPE 등이 있습니다.

    @interface

    • 이 파일을 어노테이션 클래스로 지정합니다.
    • LoginUser라는 이름을 가진 어노테이션이 생성되었다고 보면 됩니다.
    반응형

    'Programming Language > Spring' 카테고리의 다른 글

    [Spring] @Bean vs @Component  (0) 2022.09.28
    [Spring] 스프링 빈(Bean)  (0) 2022.05.31
    [Lombok] STS에 lombok 적용하기  (0) 2018.11.19
    Spring-MyBatis Connection 설정  (0) 2018.11.01
    Spring - MySQL 연동 설정  (0) 2018.11.01
Designed by Tistory.