지금까지 Lombok의 사용법

입문


프로젝트의 원본을 가져올 때 구축 오류가 많이 발생했습니다.
XXXBuilder와 같은 많은 오류가 있습니다.
build.gradle을 보면 lombok의 liburi를 사용하는데 사실 IDE도 Lombok의 플러그인을 설치해야 합니다.

Lombok


Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

Spring Tool Suite


lombok 다운로드


lombok JAR 더블 클릭



위치 지정을 클릭하여 STS 폴더 선택



선택 버튼을 누릅니다.



설치/업데이트 를 클릭합니다.



설치가 완료되었습니다.

Idea


파일 → 설정 → Plugins → lombok 입력 및 검색



설치되어 있으면 설치할 필요가 없습니다.

MarketPlace 탭에서 선택, lombok 입력 및 검색



Install 버튼을 누릅니다.



Restart IDE 버튼을 눌러 완료합니다.

VSCode


Lombok Annotations Support for VS Code 확장을 사용하여 구축 오류를 방지할 수 있습니다.
https://marketplace.visualstudio.com/items?itemName=GabrielBB.vscode-lombok

"Lombok Annotations Support for VS Code" 설치



Install 버튼을 누릅니다.


설치 후 신중하게 VScode 재부팅

Lombok 사용법


Lombok features


build.gradle에 lombok 라이브러리 추가


build.gradle
    // https://mvnrepository.com/artifact/org.projectlombok/lombok
    compile group: 'org.projectlombok', name: 'lombok', version: '1.18.12'

@Getter / @Setter



쉽게 이해할 수 있습니다. getter,setter 방법을 자동으로 생성합니다.

@ToString


toString 메서드는 @ToString(exclude = "age", callSuper = false)로 정의되고 제어됩니다.

제외된age 필드만 사용되지 않습니다.

@EqualsAndHashCode



세 가지 방법:hashCode, equals, canEqual을 생성합니다.

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor



@Value



@Builder



@Data



위에서 말한 바와 같이 다음은 주석의 총결이다.
  • @ToString
  • @EqualsAndHashCode
  • 모든 비final 필드의 @Getter
  • 모든 비final 필드의 @Setter
  • @RequiredArgsConstructor
  • @Log



    @Cleanup


    자원에 대한 주석을 자동으로 해제합니다.자원의close 처리를 생략할 수 있기 때문에 매우 유용합니다.
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import lombok.Cleanup;
    
    public class TestMain {
    
        public static void main(String[] args) throws Exception {
            @Cleanup
            InputStream in = new FileInputStream(args[0]);
            @Cleanup
            OutputStream out = new FileOutputStream(args[1]);
    
            byte[] b = new byte[1024];
            while (true) {
                int r = in.read(b);
                if (r == -1) {
                    break;
                }
                out.write(b, 0, r);
            }
        }
    
    }
    
    val, var, @NonNull, @Getter(lazy=true), @Helper, @Slf4j 등을 포함한다.
    이 주석을 사용하면 Bean류의 양을 줄일 수 있고 유지보수에도 좋다.
    보다 크면 같음

    좋은 웹페이지 즐겨찾기