본문 바로가기
IntelliJ

TodoList 구현 (모델)

by step 1 2021. 5. 30.
반응형

인텔리제이 대소문자 구분없이 자동완성 하기

https://strawberry-smoothie.tistory.com/25

 

Intellij) 대/소문자를 가리지 않고 자동완성하기

기본적으로 intellij는 대/소문자를 구분하기때문에 불편한경우가 많습니다.(ex. BufferedOutputStream) settings->Editor->code completion의 Match case를 체크해제하면 이제 대/소문자를 가리지않고 자동완성..

strawberry-smoothie.tistory.com

 

Lombok을 이용한 의존성 주입

어노테이션 설명 세부 설정
@Getter
@Setter
Getter 메서드 자동 생성
Setter 메서드 자동 생성
- lazy : 지연 호출로 동기화를 이용하여 1번만 호출
- AccessLevel : 접근 제한 레벨 설정
@ToString ToString 메서드 자동 생성 - callSuper : 상위 클래스 toString 호출 여부
- exclude : 출력하지 않을 필드명 입력
- includeFieldNames : 필드명 생략 여부
@Data @ToString, @EqaulsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 자동생성  
@EqualsAndHashCode equals, hashcode 메서드 자동생성 - of : 포함할 필드
- exclude : 제외할 필드
@Val class로 final 키워드 대신 사용하는 변수   
@NonNull Null 일 경우 NullPointerException 발생  
@Cleanup 자동 리소스 관리로 close() 메서드 관리  
@NoArgsConstructor 인자 없는 생성자 생성  
@RequriedArgsConstructor 필수 인자를 가지는 생성자 생성  
@AllArgsConstructor 모든 인자를 가진 생성자 생성  
@Value 불변 선언  
@Builder Builder API 지원  
@SneakyThrows Exception 발생시 체크된 Throable로 전달  
@Synchronized 메서드 동기화 Lock 설정  
@Log 로그를 설정 - 기본 변수명 : Log이며 config 파일 설정 후 명칭 변경 가능
- 로그 종류 : @Log, @Slf4j, @CommonLog, Xslf4j, JBossLog 등



출처: https://otrodevym.tistory.com/entry/spring-boot-시작하기-2-Lombok-설정-및-사용-방법 

 

lombok 참조 사이트

https://otrodevym.tistory.com/entry/spring-boot-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-2-Lombok-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95

 

[spring boot 설정하기-2] Lombok 설정 및 사용 방법

Intellij 사용자라면 Lombok plugin 설치와 Enable annotation processing 설정이 완료되어야 합니다. 1. Lombok(롬복)이란? 개발을 하면서 데이터를 담기 위해 객체를 만드는 VO/DTO/Domain 객체를 생성합니다...

otrodevym.tistory.com

 

JPA annotation 사용

https://eocoding.tistory.com/29

 

JPA 4 : @GeneratedValue 기본키 매핑 전략 정리

필수 어노테이션정리 @Entity  -> JPA를 사용해서 데이터베이스의 테이블과 매핑할 클래스에 필수로 명시해야 하는 어노테이션 제약사항 1. 파라미터가 없는 protected나 public의 기본생성자가 필수로

eocoding.tistory.com

 

클래스 생성

package org.example.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
public class TodoEntity {

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

    @Column(nullable = false)
    private String title;

    @Column(name = "todoOrder", nullable = false)
    private Long order;

    @Column(nullable = false)
    private Boolean completed;
}
package org.example.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TodoRequest {

    private String title;
    private Long order;
    private Boolean completed;
}
package org.example.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TodoResponse {
    private Long id;
    private String title;
    private Long order;
    private Boolean completed;
    private String url;
    
    public TodoResponse(TodoEntity todoEntity) {
        this.id = todoEntity.getId();
        this.title = todoEntity.getTitle();
        this.order = todoEntity.getOrder();
        this.completed = todoEntity.getCompleted();
//        기본 URL 설정
        this.url = "http://localhost:8080/" + this.id;
    }
}

 

반응형

'IntelliJ' 카테고리의 다른 글

테스트 코드 작성  (0) 2021.06.05
TodoList 구현 (컨트롤러 구현)  (0) 2021.05.30
TodoList 구현 (서비스 코드 구현)  (0) 2021.05.30
TodoList 구현 (repository 구현)  (0) 2021.05.30
인텔리제이 시작  (0) 2021.05.30