@Getter
선언된 모든 필드의 get메서드 생성
@RequiredArgsConstructor
final로 선언된 모든 필드가 포함된 생성자를 생성
public class HelloResponseDto {
private final String name;
private final int amount;
}
@NoArgsConstructor
기본 생성자 자동추가
@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는 사용 못함
SpringRunner.class) (
public class HelloControllerTest {
private MockMvc mvc;
}
@SpringBootTest
별도의 설정없이 H2 데이터베이스를 자동으로 실행시켜줌
SpringRunner.class) (
public class PostsRepositoryTest {
}
@After
junit에서 단위테스트가 끝날때마다 수행되는 메서드
public void cleanup() {
postsRepository.deleteAll();
}
JPA 관련 어노테이션(import javax.persistence.*;)
@Entity
테이블과 링크될 클래스
카멜케이스이름과 언더스코어네이밍으로 테이블 이름을 매칭
ex) SaleManager.java -> sales_manager (table)
public class Posts {
}
@Id
해당 테이블의 PK
@GeneratedValue(strategy= GenerationType.IDENTITY)
PK의 생성 규칙
GenerationType.IDENTITY 를 추가해야 auto_increment가 된다.
strategy= GenerationType.IDENTITY) (
private Long id;
@Column
테이블의 컬럼
굳이 선언하지 않아도 되지만, 기본값 외에 추가로 변경이 필요할 때 사용
문자열은 VARCHAR(255)가 기본이지만
사이즈를 늘리거나 (length=500),
타입을 텍스트로 변경(content 같은거)하고 싶을 때 사용
length=500, nullable=false) (
private String title;
columnDefinition="TEXT", nullable = false) (
private String content;
스프링 어노테이션
@Transactional(readOnly =true)
트랜잭션의 범위는 유지하되, 조회 기능만 남겨두어 조회속도가 개선
등록,수정,삭제 기능이 전혀 없는 메서드에서 사용하는 것을 추천
'DEV > Spring' 카테고리의 다른 글
[Spring] 스프링 Interceptor 설정 (0) | 2020.04.12 |
---|---|
[SpringBoot] 스프링 시큐리티, OAuth2로 구글로그인 구현 예제 (0) | 2020.02.26 |
[SpringBoot] 빈 주입은 @Autowired 대신에 생성자로 주입하라 (@RequiredArgsConstructor) (0) | 2020.02.20 |
[SpringBoot] 비지니스 로직은 Service에서 처리하는것이 아니다. (1) | 2020.02.18 |
[SpringBoot] 기본 테스트코드 작성하는 법, 어노테이션 정리 (0) | 2020.02.18 |