Des packages pratiques que les personnes qui ont décidé d'écrire en Java devraient connaître

introduction

Je fais généralement du développement Web en langage Go, mais récemment j'ai commencé le développement Web avec Java Spring, ** "C'est trop pratique !!" ** Il y avait plusieurs packages, je voudrais donc les présenter.

lombok lombok peut être omis en annotant simplement le code de la plaque chauffante du constructeur, Getter, Setter, Builder, etc. C'est peut-être assez célèbre, mais pour moi, qui n'a touché Java que lors de conférences universitaires, j'ai été choqué de pouvoir omettre considérablement le code redondant. Cela seul améliorera l'efficacité du développement.

Exemple

Ordinaire

class Sample {
  private String name; 

  public Sample() {}

  public Sample(String name) {
     this.name = name;
  }

  public String getName(){
    return name;
  }

  public void setName(String name) {
     this.name = name;
  }
}

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

Utilisez Lombok

@Getter 
@Setter
@AllArgsConstructor
@NoArgsConstructor
class Sample {
  private String name; 
}

C'est tout ce qu'on peut en dire! Annotation ... C'est assez pratique!

ParameterizedTest ParameterizedTest est une annotation qui peut être utilisée dans un package de test appelé JUnit5. Cette annotation facilite l'implémentation du Test Driven Table, qui est couramment utilisé dans le langage Go.

/*
* public String hogehoge(String str);
* append "hoge" str
*/
@ParameterizedTest
@MethodSource("hogeProvider")
void hogehogeTest(String input ,String expect) {
  assetEquals(hogehoge(input),expect);
}

static Stream<Arguments> hogeProvider() {
  return Stream.of(
    arguments("hogehoge","hogehogehoge"),//input,expect
    arguments("test","testhoge")
  );
}

Vous pouvez facilement mettre dans de nombreux cas de test.

Annotation ... ** Je l'aime! ** **

Spring Sleuth Spring Sleuth est un outil qui vous permet de vous connecter facilement. Ajoutez-le simplement à votre package!

Fondamentalement, pour une demande, l'ID de trace est toujours affiché en même temps que la sortie du journal. Par conséquent, au moment de l'enquête sur le journal,

$ xx yy.log |grep <ID de trace>


 Vous pouvez vérifier la sortie du journal dans une requête ci-dessus.

 Spring Sleuth n'est pas le seul! !!
 Il est possible de propager l'ID de trace!


 Récemment, les micro-services sont devenus courants et je pense que plusieurs systèmes et applications passeront par l'API Web, etc. en un seul processus.
 Donc, la chose très ennuyeuse est de suivre le journal.

 Par exemple, disons que vous avez un système appelé A-B-C connecté. Si un utilisateur fait une demande au système A et qu'une erreur interne se produit dans le système A, il peut être nécessaire d'examiner B et C.
 Cependant, comme les systèmes sont séparés, chaque système doit enregistrer à l'avance un ID qui peut être identifié de manière unique pour un flux de demande lors de l'examen du journal.


 Les identifiants de trace peuvent être automatiquement propagés entre les systèmes sur lesquels Spring Sleuth est installé. Par conséquent, le journal peut être étudié avec le même ID de trace et l'extraction des données devient fluide. Si vous avez introduit un système inter-équipes, je pense qu'il est possible de demander une enquête de journal simplement en indiquant l'ID de trace.

 ** Trop pratique! !! !! ** **

## Résumé
 Spring est vraiment pratique, et la plupart d'entre eux peuvent être complétés par des packages existants, et Java est étonnamment cool pour créer des applications décentes (implémentations, tests, etc.)! J'ai compris ça.

 Je veux me mettre en colère contre moi-même qui détestait Java!


 Je n'ai pas parlé des conteneurs DI et DI cette fois, mais cette fonction est également très pratique, donc j'espère la présenter à nouveau quelque part.

 Eh bien.


Recommended Posts

Des packages pratiques que les personnes qui ont décidé d'écrire en Java devraient connaître
Nouvelles fonctionnalités de Java 14 pouvant être utilisées pour écrire du code
Comment rédiger un commentaire java