@AllArgsConstructor:
La anotación @AllArgsConstructor se utiliza para generar un constructor completamente parametrizado . El permiso de acceso predeterminado del constructor generado también es público. Cuando se agregan anotaciones a una clase, se generan constructores para todos los campos.
@Datos:
La anotación @Data se utiliza para generar todos los métodos requeridos por Java Bean, como iguales, hashCode, toString y getters/setters . Cuando se agregan anotaciones a una clase, los métodos getter y setter se agregarán automáticamente para todas las propiedades de la clase. Además, también se generarán automáticamente iguales, hashCode, toString, constructor y otros métodos.
@NoArgsConstructor:
La anotación @NoArgsConstructor se utiliza para generar un constructor sin argumentos y el constructor generado de forma predeterminada tiene permisos públicos. Si usted mismo define un constructor parametrizado, el constructor sin parámetros no se generará a menos que se utilice la anotación @ForceArgsConstructor para forzar la generación de un constructor con todos los parámetros.
@RequiredArgsConstructor:
La anotación @RequiredArgsConstructor se utiliza para generar un constructor con los parámetros requeridos, solo genera un constructor para las variables miembro modificadas por final y genera un constructor que solo contiene las variables miembro modificadas por la anotación @NotNull como parámetros.