Lombok est une bibliothèque Java qui permet d'automatiser la création de méthodes telles que les getters, les setters, les constructeurs, les méthodes equals, hashCode et toString grâce aux annotations. L'utilisation de Lombok permet de réduire la quantité de code-boilerplate.
Vous pouvez télécharger Lombok depuis le site officiel : https://projectlombok.org/download
Pour une installation via Maven, vous pouvez ajouter la dépendance suivante à votre fichier pom.xml :
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.28</version>
<scope>provided</scope>
</dependency>
Il est ensuite nécessaire d'installer le plugin Lombok dans votre IDE :
L'annotation @Data de Lombok est une annotation de commodité regroupant les annotations @ToString, @EqualsAndHashCode, @Getter, @Setter et @RequiredArgsConstructor. Elle permet de générer tout le code-boilerplate en une seule ligne.
@Data
public class Person {
private String name;
private int age;
}
Ces annotations permettent de générer automatiquement les getters et les setters pour les attributs d'une classe.
@Getter @Setter
public class Person {
private String name;
private int age;
}
A noter qu'il est possible de demander à Lombok de mettre en cache les données récupérées la première fois (si non null) en utilisant l'annotation @Getter(lazy=true).
Ces trois annotations génèrent différents types de constructeurs pour une classe :
@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
public class Person {
private String name;
private int age;
}
Il est possible de définir la visibilité du constructeur généré. Par exemple, @NoArgsConstructor(access = AccessLevel.PRIVATE) génère un constructeur privé sans arguments.
L'annotation @Builder de Lombok facilite la mise en œuvre du design pattern Builder.
@Builder
public class Employee {
private String name;
private String department;
private double salary;
}
// Use
Employee e = Employee.builder().name("John").department("IT").salary(50000.00).build();
Lombok propose également l'annotation @Slf4j, qui génère automatiquement un Logger Slf4j pour la classe concernée.
@Slf4j
public class Employee {
public void someMethod() {
log.info("This is an info message");
}
}
L'annotation @Value est utile pour créer des classes immuables. Elle regroupe les annotations @Getter, @AllArgsConstructor, @EqualsAndHashCode, @ToString et @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE). Aucun setter n'est créé et toutes les variables (de même que la classe) sont notés final.
@Value
public class Point {
int x;
int y;
}
L'utilisation de Lombok est à double tranchant. On peut citer plusieurs avantages non négligeables :
Cependant, plusieurs inconvénients peuvent survenir :
Cet article a abordé l'installation, la configuration et l'utilisation de Lombok dans un environnement Java ainsi que les avantages et les inconvénients de son utilisation.
Lombok, malgré ses inconvénients, est un outil précieux pour améliorer la productivité, la lisibilité du code et la qualité du code dans le développement Java et est largement utilisé dans le développement logiciel en Java.
Pour approfondir, je vous conseille d'examiner les annotations @SneakyThrows, @Cleanup et @Synchronized ou encore de découvrir comment retirer Lombok du projet tout en conservant un code fonctionnel.
À noter que cet article, pour des besoins de test, a été en partie rédigé par une IA et presque entièrement reformulé, complété et vérifié par un humain.
LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos