클래스 내의 멤버 변수는 데이터를 외부로부터 은닉하기 위해 private로 선언이 되고, 이러한 멤버변수에 접근하기 위해 @Getter, @Setter 를 사용하여 각 변수를 조회하고 값을 할당한다.
ex) DTO 코드 (Lombok 사용 X)
public class MemberDto {
private String name;
private int age;
private String birth;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
ex) DTO 코드 (Lombok 사용 O)
@Getter
@Setter
@ToString
public class MemberDto {
private String name;
private int age;
Controller 코드
import com.example.demo.dto.MemeberDTO;
@PostMapping("/member/register")
public String register(@ModelAttribute MemeberDTO memberDTO){
System.out.println("MemberDTO = " + memberDTO);
return "index";
}
}
Lombok을 사용하면 생성자도 자동으로 생성하다.
@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
@NonNull
private String username;
@NonNull
private String password;
private int[] scores;
}
User user1 = new User(); // @NoArgsConstructor
User user2 = new User("dale", "1234"); // @RequiredArgsConstructor
User user3 = new User(1L, "dale", "1234", null); //@AllArgsConstructor
toString() 메소드를 자동으로 생성하고, exclude 속성을 사용하면, 특정 필드를 toString() 결과에서 제외시킬 수도 있다.
@ToString(exclude = "password")
public class User {
private Long id;
private String username;
private String password;
}