본문 바로가기
🍁 Spring/🍃SpringBoot

[Springboot/스프링부트]Lombok 라이브러리 by 인텔리제이

by 김말자 2022. 8. 11.
728x90
728x90
BIG

Lombok

게터,세터,ToString과 같은 반복적인 자바코드를 줄여주는 라이브러리

인텔리제이에서 설치하기

파일 - 셋팅에 들어간다

플러그인을 선택, 롬복을 검색해서 인스톨한다

저는 이미 설치해서 인스톨드에 뜨는데 그게아니면 설치한후 어플라이후 오케이를 누르면 된다

그 후 셋팅에 다시 들어가서 빌드 - 컴파일러 - 어노테이션 프로세서에서 인에이블어노테이션프로세싱을 누르고 오케이를 누른다.

그 후 pom.xml 에 들어가서 디펜던시를 추가합니다

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
</dependency>

롬복을 꼭 디팬던시스 사이에 추가해줘야함

저장을 하게 되면 추가 되는 것을 확인해야한다.

디펜던시를 눌러서 들어가있는것을 확인할 수 있다.

 

롬복 라이브러리의 어노테이션들

@Getter and @Setter = 코드를 컴파일 할때 속성들에 대한 게터세터메소드 생성

 *게터세터를 사용하는 이유 클래스필드에 직접 접근하는것을 막기 위해서임

@FieldNameConstants 필드이름콘스탄트
@ToString = toString()메소드 생성

*투스트링 = 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메소드(오버라이드//재정의)

@AllArgsConstructor 모든 속성에 대한 생성자 생성

 @RequiredArgsConstructor 초기화되지 않은 Final, 논널어노테이션이 붙은 필드에 대한 생성자 생성

@NoArgsConstructor = 파라미터가 없는 기본 생성자 생성
@Log 로그 변수 자동생성( @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog)
@Data투스트링,이퀄스엔해쉬코드,게터,세터,리콰이얼드알규스콘스트럭터를 합친 어노테이션
@Builder 빌더패턴을 이용한 객체 생성 // 객체를 정의하고 그객체를 생서할 때 보통 생성자를 통해 생성하는 것을 생성하는데 객체를 생성하는 별도 빌더를 두는 방법이 있음(파라미터가 많으면 가독성이 안좋으니까 빌더를 두는 것임)

@SuperBuilder 부모클래스에 빌더를 하기 위해
@Singular 목록에 정확히 하나의 요소가 포함되어 있는지 여부를 나타내는 부울값을 리턴
@Delegate 클래스인스턴스와 해당 클래스의 인스턴스 메서드 또는 정적 메서드를 참조하는 데이터 구조체인 대리자를 나타냄
@Value 불변(immutable)클래스 생성

@With 불변,세터 클론을 생성하지만 필드가 하나 변경된 메소드
@SneakyThrows
@StandardException
@val 최종 지역변수
@var지역변수

@NonNull 해당변수가 널체크, NullpointerException예외 발생

@EqualsAndHashCode equals()와 hashcode()메소드 생성

*equals 개체가 같은지 확인 // hashcode 알고리즘에 생성된 정수값 // 이퀄스 비교에 사용되는 정보가 변경되지 않는다면, 애플리케이션이 실행되는 동안 그 객체의 해쉬코드메소드는 몇번을 호출해도 일관되게 항상 같은 값을 반환해야한다.

 

 

https://projectlombok.org/features/all

 

Stable

 

projectlombok.org

 

DTO생성

package com.example.demo;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class UserDto {
    private String name;
    private String age;
}
package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @GetMapping(value = "/test")
    public UserDto test(){

        UserDto userDto = new UserDto();
        userDto.setAge(18);
        userDto.setName("malja");
        return userDto;
    }
}

컨트롤러에 적용해서 테스트가 들어가면 안에 나이와 이름을 넣었음

잘 돌아가는 것을 확인할 수 있음

728x90
반응형
BIG

댓글