lombok 어노테이션

@Getter

  • 선언된 모든 필드의 get메서드 생성

@RequiredArgsConstructor

  • final로 선언된 모든 필드가 포함된 생성자를 생성

    @Getter                    
    @RequiredArgsConstructor
    public class HelloResponseDto {
       private final String name;
       private final int amount;
    }

@NoArgsConstructor

  • 기본 생성자 자동추가

@Builder

  • 해당 클래스의 빌더 패턴 클래스를 생성

  • 생성자 산단에 선언지 생성자에 포함된 필드만 빌더에 포함

    @Builder
    public Posts(String title, String content, String author) {
     this.title = title;
     this.content = content;
     this.author = author;
    }










테스트 관련 어노테이션

@RunWith(SpringRunner.class)

  • 스프링부트테스터와 junit 사이에 연결자 역할

  • SpringRunner라는 스프링 실행자를 실행

@WebMvbTest

  • web(Spring MVC) 에 집중할 수 있는 어노테이션

  • @Controller, @ControllerAdvice등을 사용 가능하지만

  • @Service, @Component, @Repository는 사용 못함


    @RunWith(SpringRunner.class)
    @WebMvcTest
    public class HelloControllerTest {
      @Autowired
       private MockMvc mvc;
    }

@SpringBootTest

  • 별도의 설정없이 H2 데이터베이스를 자동으로 실행시켜줌


    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class PostsRepositoryTest {
    }

@After

  • junit에서 단위테스트가 끝날때마다 수행되는 메서드

    @After
    public void cleanup() {
     postsRepository.deleteAll();
    }







JPA 관련 어노테이션(import javax.persistence.*;)

@Entity

  • 테이블과 링크될 클래스

  • 카멜케이스이름과 언더스코어네이밍으로 테이블 이름을 매칭

    • ex) SaleManager.java -> sales_manager (table)


@Entity
public class Posts {
}

@Id

  • 해당 테이블의 PK

@GeneratedValue(strategy= GenerationType.IDENTITY)

  • PK의 생성 규칙

  • GenerationType.IDENTITY 를 추가해야 auto_increment가 된다.

@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;

@Column

  • 테이블의 컬럼

  • 굳이 선언하지 않아도 되지만, 기본값 외에 추가로 변경이 필요할 때 사용

    • 문자열은 VARCHAR(255)가 기본이지만

    • 사이즈를 늘리거나 (length=500),

    • 타입을 텍스트로 변경(content 같은거)하고 싶을 때 사용

@Column(length=500, nullable=false)
private String title;

@Column(columnDefinition="TEXT", nullable = false)
private String content;




스프링 어노테이션

@Transactional(readOnly =true)

  • 트랜잭션의 범위는 유지하되, 조회 기능만 남겨두어 조회속도가 개선

  • 등록,수정,삭제 기능이 전혀 없는 메서드에서 사용하는 것을 추천


+ Recent posts