Lombok에서 제공하는 생성자 어노테이션은 3가지가 있다.
아무 인자가 없는 생성자를 생성해준다.
꼭 필요한 변수만 인자로 받아 생성자를 구현한다. 꼭 필요한 변수를 결정짓는 것은 final 혹은 @NotNull 어노테이션이다. 이렇게 필수적으로 정의되어야하는 변수를 인자로 받아 객체를 생성한다. 이때 @NotNull은 롬복이 아닌 다른 라이브러리의 것으로 사용하면 필수 변수로 인식되지 않는다.
해당 객체에 있는 모든 변수들을 인수로 받는 생성자를 만든다. 이때 NotNull을 지정한 변수는 null인지 체크도 한다. 하지만 이 어노테이션으로 생성자를 만들땐 정적 팩토리메소드를 사용하는것이 가독성이 좋을때가 많기 때문에, 사용 전에 고려를 해봐야한다.