프레임워크/Spring, Spring Boot

[메타코딩] 스프링부트 강좌 16강(블로그 프로젝트) - lombok세팅 및 사용해보기

고용인 2022. 7. 25. 18:01

롬복 설치 과정은 아래 강의를 참조하겠습니다.

 

@Getter
@Setter
public class Member {

	private int id;
	private String username;
	private String password;
	private String email;
	
}
@Data
public class Member {

	private int id;
	private String username;
	private String password;
	private String email;
	
}

위 두개의 내용은 서로 같은 내용입니다.

@Getter, @Setter를 두개 다 쓰고 싶다면 @Data라는 어노테이션을 쓰면 됩니다.

 

@NoArgsConstructor : 빈 생성자를 추가하는 어노테이션입니다.

@AllArgsConstructor : 전체 생성자를 추가하는 어노테이션입니다.

@RequiredArgsConstructor : final이 붙은 변수에 대해 생성자를 추가하는 어노테이션입니다.

package com.cos.blog.test;

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

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Member {
	private int id;
	private String username;
	private String password;
	private String email;
}

 

@Builder : 해당 어노테이션 선언시 객체를 선언할때 아래와 같은 방식으로 선언하여 사용 할 수 있습니다.

    - builder의 장점

      1. 생성자의 순서를 지키지 않아도 됩니다.

      2. 필드의 값이 무엇이었는지 생각하지 않아도 됩니다.

Member m = Member.builder().username("ssar").password("1234").email("ssar@nate.com").build();
package com.cos.blog.test;

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

@Data
@NoArgsConstructor
public class Member {
	private int id;
	private String username;
	private String password;
	private String email;
	
	@Builder
	public Member(int id, String username, String password, String email) {
		this.id = id;
		this.username = username;
		this.password = password;
		this.email = email;
	}
}
@GetMapping("/http/lombok")
public String lombokTest() {
    Member m = Member.builder().username("ssar").password("1234").email("ssar@nate.com").build();
    System.out.println(TAG+"getter:"+m.getUsername());
    m.setUsername("cos");
    System.out.println(TAG+"setter:"+m.getUsername());
    return "lombok test 완료";
}
HttpController : getter:ssar
HttpController : setter:cos

 

 

강의 주소 : https://youtu.be/U3Bq4C-NEDU