| name | lombok-patterns |
| description | Use Lombok annotations to reduce Java boilerplate. Use when creating entities, DTOs, or services that need getters, setters, builders, or constructors. |
| allowed-tools | Read, Edit, Grep |
Lombok Patterns
This project uses Lombok to reduce Java boilerplate. Always prefer Lombok annotations over manual implementations.
Common Annotations
For Entities/Models
@Data // Getters, setters, equals, hashCode, toString
@Entity
public class Task {
@Id @GeneratedValue
private Long id;
private String title;
}
For Immutable DTOs
@Value // Immutable: final fields, getters only
@Builder // Builder pattern
public class TaskResponse {
Long id;
String title;
}
For Services
@Service
@RequiredArgsConstructor // Constructor for final fields (DI)
public class TaskService {
private final TaskRepository taskRepository;
}
Annotation Reference
| Annotation | Purpose |
|---|---|
@Data |
@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor |
@Value |
Immutable version of @Data |
@Builder |
Builder pattern implementation |
@RequiredArgsConstructor |
Constructor for final fields |
@AllArgsConstructor |
Constructor for all fields |
@NoArgsConstructor |
Default no-args constructor |
@Slf4j |
Creates log field for logging |
JPA Entity Pattern
@Data
@Entity
@NoArgsConstructor // Required by JPA
@AllArgsConstructor
@Builder
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private String description;
private boolean completed;
private int priority;
@Enumerated(EnumType.STRING)
private TaskState state;
}
IDE Support
Lombok requires annotation processing enabled:
- IntelliJ: Enable annotation processing in settings
- VS Code: Lombok extension handles this automatically
If getters/setters show as errors but code compiles, restart IDE.