Cet article présente la bénédiction de l'élégant codé de Springboot Lombok et le partage avec vous, comme suit:
Aperçu
Lombok aide à simplifier l'élimination de certains code Java qui doivent avoir mais semble gonflé en fournissant des annotations de syntaxe simples. En règle générale, la simplification des objets POJO (comme la génération automatique des setters et des getters pour nous, etc.), avec le soutien de Lombok, les développeurs peuvent éviter de nombreuses opérations répétitives et gonflées, améliorant considérablement le rapport signal / bruit du code Java, nous devons donc essayer de l'appliquer!
Configuration sur Intellij Idea
Méthode 1: Configurez directement dans l'interface d'idée
Entrez d'abord l'interface des plugins:
Puis recherchez et installez le plugin Lombok:
Enfin, n'oubliez pas d'activer l'option Activer des processeurs d'annotation:
Une fois l'installation ci-dessus terminée, l'idée doit être redémarrée pour prendre effet!
Méthode 2: Téléchargez manuellement l'installation du plug-in Lombok
Parfois, pour des raisons de réseau, la méthode ci-dessus ne parvient pas à s'installer, vous ne pouvez donc que le télécharger et l'installer manuellement.
Téléchargez le plugin Lombok:
https://github.com/mplushnikov/lombok-intellij-plugin/releases
Plugins -> Installer le plugin à partir du disque ... Sélectionnez l'installation du package zip téléchargé
Il suffit de redémarrer l'idée
Une fois les paramètres de l'IDE terminés, vous devez ajouter la dépendance Lombok suivante dans pom.xml pour l'utiliser
<dependency> <proupId> org.projectlombok </rompuprid> <letifactive> Lombok </ artifactid> <version> 1.16.16 </-version> </Dependency>
Lombok Notes principales
@Getter and @Setter / fournissent automatiquement un ensemble et obtenez des méthodes de propriétés@ToString / La fonction de cette annotation consiste à générer automatiquement la méthode toString () pour la classe@EqualsAndHashCode / générer automatiquement HashCode et égale les implémentations pour les champs d'objet@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor / Comme le nom l'indique, génère automatiquement des constructeurs avec des paramètres correspondants pour la classe@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog / Ajouter automatiquement la prise en charge du journal correspondant à la classe@Data / Ajouter automatiquement @ToString, @EqualSandHashCode, @getter, add @setter et @RequiredArgSconstructor aux champs non finaux, ce qui est essentiellement équivalent à l'effet complet de plusieurs annotations.@NonNull / nous aide automatiquement à éviter les pointeurs nuls. Les annotations agissant sur les paramètres de la méthode sont utilisées pour générer automatiquement les vérifications des paramètres nuls@Cleanup / appelez automatiquement la méthode close () pour nous. Il agit sur les variables locales. Lorsque la portée se termine, la méthode Close sera automatiquement appelée pour libérer des ressources. Voici une bataille de code pratique avec les annotations @Data et @Log qui sont les plus fréquemment utilisées dans Lombok!
@Data Annotation Use
L'explication du site officiel sur l'annotation @data est la suivante:
Tous ensemble maintenant: un raccourci pour @ToString, @equalsandhashcode, @getter sur tous les champs, @Setter sur tous les champs non finaux et @RequiredArgSonstructor!
Il n'est pas difficile à comprendre, il peut être considéré comme une intégration de plusieurs annotations de Lombok, il est donc très pratique à utiliser!
Tout d'abord, créez une entité POJO Userlombok. La méthode d'écriture générale est la suivante:
classe publique Userlombok {nom de chaîne finale privée; Âge privé; double score privé; Tags de chaîne privée []; public userlombok (String name) {this.name = name; } public String getName () {return this.name; } void Setage (int Age) {this.age = age; } public int getage () {return this.age; } public void setScore (double score) {this.score = score; } public double getScore () {return this.score; } public String [] getTags () {return this.tags; } public void Settags (string [] tags) {this.tags = tags; } @Override public String toString () {return "dataExample (" + this.getName () + "," + this.getage () + "," + this.getscore () + "," + arrays.deeptoString (this.gettags ()) + ")";; } booléen protégé canequal (objet autre) {return une autre instance de dataExample; } @Override public booléan equals (objet o) {if (o == this) return true; if (! (o instanceof dataExample)) renvoie false; DataExample Autre = (dataExample) o; if (! o.canqual ((objet) this)) renvoie false; if (this.getName () == null? other.getName ()! = null :! this.getName (). equals (other.getName ())) return false; if (this.getage ()! = autre.getage ()) return false; if (double.compare (this.getScore (), autre.getScore ()))! = 0) return false; if (! arrays.deesequals (this.getTags (), autre.getTags ())) renvoie false; Retour Vrai; } @Override public int hashcode () {final int prime = 59; Int résultat = 1; Temp1 long final = double.doubleTolongBits (this.getScore ()); result = (result * prime) + (this.getName () == null? 43: this.getName (). hashcode ()); résultat = (résultat * prime) + this.getage (); result = (résultat * prime) + (int) (temp1 ^ (temp1 >>> 32)); résultat = (résultat * prime) + arrays.deephashcode (this.getTags ()); Résultat de retour; }}Après la bénédiction de Lombok, la méthode d'écriture peut être simplifiée à:
@Datapublic class userlombok {name de chaîne finale privée; Âge privé; double score privé; String privé [] balises;}Lorsqu'il est utilisé dans Idea, les annotations de Lombok seront automatiquement terminées, comme indiqué dans la figure suivante:
Écrivons le code de test Pojo
public static void main (String [] args) {userlombok userlombok = new Userlombok ("hansonwang99"); Userlombok.Setage (18); String [] array = new String [] {"Apple", "jus"}; userlombok.setTags (array); userlombok.setsCore (99.0); System.out.println (Userlombok); }D'après la figure ci-dessous, nous pouvons voir que l'idée peut toujours compléter automatiquement le code généré automatiquement par Lombok pour nous:
Résultats Imprimer
Étant donné que Lombok génère automatiquement la méthode de ToString pour nous, le résultat d'impression de l'objet est le suivant:
Userlombok (name = hansonwang99, âge = 18, score = 99,0, tags = [pomme, jus])
@Log annotation Practice
Dans mon article Spring Boot Log Framework Practice, nous utilisons LOG4J2 comme objet journal, qui est écrit comme suit:
@ RestController @ requestmapping ("/ testLogging") public class loggingTestController {private final logger logger = logManager.getLogger (this.getClass ()); @GetMapping ("/ Hello") String public hello () {for (int i = 0; i <10_0000; i ++) {logger.info ("Info Execute Index Method"); Logger.Warn ("Warn Execute Index Method"); Logger.Error ("Erreur Exécuter la méthode d'index"); } return "Ma première application Springboot"; }}Si vous utilisez Lombok à la place, la méthode d'écriture devient plus concise. Il nous suffit d'introduire l'annotation @log correspondante pour compléter la génération de l'objet logarithmique:
@ RestController @ requestmapping ("/ testLoggingwithlombok") @ log4j2public class loggingtestControllerlombok {@getMapping ("/ hello") public chaîne hello () {for (int i = 0; i <10_0000; i ++) {Log.Info ("Infernet Index Method"); Log.Warn ("Warn Execute Index Method"); Log.Error ("Erreur Exécuter la méthode d'index"); } return "Ma première application Springboot"; }}Que diriez-vous, tout est si élégant!
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.