[Java] Comment omettre l'injection de constructeur de ressort avec Lombok

Notez la technique utilisée par les seniors au travail

Postscript: Tous ont été publiés sur ce blog http://pppurple.hatenablog.com/entry/2016/12/29/233141

1. Qu'est-ce que Lombok?

C'est une bibliothèque pratique qui génère automatiquement le code de la plaque chauffante (code standard qui ne peut pas être omis en raison des spécifications du langage) au moment de la compilation. Par exemple, le getter / setter JavaBean, etc. peut être annoté.

2. Essayez l'injection de constructeur

Supposons que HogeLogic utilise FugaLogic et que vous vouliez l'obtenir à partir d'un conteneur DI.

2-1. Injection du constructeur General Spring

Écrivons une injection de constructeur Spring normale.

Échantillon A


@Component
public class HogeLogic {

  private final FugaLogic fugaLogic;

  @Autowired // <- 4.Peut être omis après 3
  public HogeLogic(FugaLogic fugaLogic) {
    this.fugaLogic = fugaLogic;
  }

  // some method
}

L'important est que depuis ** spring4.3 vous pouvez omettre @ Autowired si vous avez un constructeur **.

2-2. Injection de constructeur omise à Lombok

Écrivons l'injection de constructeur omise dans Lombok. Annotez simplement @ RequiredArgsConstructor à la classe: angel:

Échantillon B


@RequiredArgsConstructor // <-ici
@Component
public class HogeLogic {

  private final FugaLogic fugaLogic;

  // some method
}

Conseils. Essayez delombok

En regardant le code généré automatiquement, il ressemble à ceci:

Échantillon C


@Component
public class HogeLogic {

  private final FugaLogic fugaLogic;

  public HogeLogic(FugaLogic fugaLogic) {
    this.fugaLogic = fugaLogic;
  }

  // some method
}

La version poire «@ Autowired» de «Sample A» est terminée.

3. Que voulez-vous dire?

@RequiredArgsConstructor Une annotation pour générer un constructeur qui prend comme arguments les paramètres d'initialisation des champs qui doivent être initialisés (comme les champs finaux). [Guide de développement de TERASOLUNA Server Framework for Java (5.x) | 11.2. Élimination du code de plaque de chaudière (Lombok)](http://terasolunaorg.github.io/guideline/5.3.1.RELEASE/en/Appendix/Lombok .html)

Un constructeur est généré par l'effet de @ RequiredArgsConstructor Puisqu'il n'y a qu'un seul constructeur, cela signifie que @ Autowired est omis. Il a été automatiquement injecté par le constructeur ...

La technique combinée est incroyable.

Recommended Posts

[Java] Comment omettre l'injection de constructeur de ressort avec Lombok
[Java] Comment omettre le constructeur privé dans Lombok
Comment utiliser Lombok au printemps
Comment compiler Java avec VsCode & Ant
[Java] Résumez comment comparer avec la méthode equals
Etudier comment utiliser le constructeur (java)
[Java] Comment tester s'il est nul dans JUnit
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
Comment utiliser h2db intégré avec Spring Boot
Comment utiliser le framework Java avec AWS Lambda! ??
Comment utiliser l'API Java avec des expressions lambda
[Java] Article pour ajouter une validation avec Spring Boot 2.3.1.
Comment appeler des fonctions en bloc avec la réflexion Java
Comment définir l'injection de dépendance Spring Boot (DI)
Comment déployer Java sur AWS Lambda avec Serverless Framework
[Java] Comment chiffrer avec le chiffrement AES avec une bibliothèque standard
Comment créer un environnement de développement Java avec VS Code
Comment démarrer par environnement avec Spring Boot de Maven
[Java] Comment rompre une ligne avec StringBuilder
Configuration Java avec Spring MVC
Comment abaisser la version java
[Java] Comment utiliser Map
Comment désinstaller Java 8 (Mac)
Java pour jouer avec Function
Java - Comment créer JTable
Comment utiliser java Facultatif
Comment réduire les images Java
Comment rédiger un commentaire java
Comment utiliser @Builder (Lombok)
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
[Java] Comment afficher les Wingdings
Comment numéroter (nombre) avec html.erb
Comment utiliser Java Map
Comment mettre à jour avec activerecord-import
Comment définir des constantes Java
Connectez-vous à DB avec Java
Connectez-vous à MySQL 8 avec Java
Utilisation de Mapper avec Java (Spring)
[Java] Fonctionnement de Spring DI
Comment utiliser les variables Java
Comment convertir la base Java
[Java] Comment implémenter le multithreading
Comment utiliser Lombok maintenant
Comment initialiser un tableau Java
Comment inverser la compilation du fichier apk en code source Java avec MAC
Comment utiliser le modèle entraîné Tensorflow 2.0 avec Kotlin / Java
Comment gérer les exceptions froidement avec Java 8 Stream ou en option
Comment appeler et utiliser l'API en Java (Spring Boot)
A étudié comment appeler des services avec Watson SDK pour Java
Comment étudier Java Silver SE 8
Comment utiliser HttpClient de Java (Get)
NoSuchMethodException avec lombok sans constructeur par défaut
Comment exécuter la commande de copie Postgresql avec des informations de colonne sur Java
Comment faire un test unitaire de Spring AOP
Java pour apprendre avec les ramen [Partie 1]