Languages
[Edit]
EN

Lombok - most popular usage combinations of Lombok annotations on DTO objects in java

11 points
Created by:
Marcin
2444

Using with DTO object

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.FieldDefaults;

@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class AddPostRequest {
    String postName;
    String postBody;
}

Why to use @NoArgsConstructor ?

We can use this DTO with json libraries that requires empty constructor. All fiels will be private and we have all args contructor annotation if we want to create object in this way.

Using with Hibernate entity

@Data
@AllArgsConstructor
@NoArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
@Table(name = "posts")
public class PostsEntity {

    @Id
    @GeneratedValue
    Long id;
    String title;
	// ..
}

Lombok with logger - Slf4j

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class LombokWithLogger {

    public static void main(String[] args) {
        log.info("Log info");
        log.error("Log error");
        
        // internally it uses:
        // org.slf4j
    }
}

References

  1. Lombok all features - stable
  2. Lombok all features - experimental
Hey 👋
Would you like to know what we do?
  • Dirask is a friendly IT community for learners, professionals and hobbyists to share their knowledge and help each other in extraordinary easy way.
  • We welcome everyone,
    no matter what the experience,
    no matter how basic the question is,
    this community will help you.