Informations personnalisées dans le point de terminaison Info démarrage printanier

Informations personnalisées dans le point de terminaison des informations de démarrage de printemps

1. Vue d'ensemble

Dans cet article rapide, nous allons voir comment personnaliser le point de terminaison/infodes Spring Boot Actuators.

Veuillezrefer to this article pour en savoir plus sur les actionneurs dans Boot et comment les configurer.

2. Propriétés statiques dans / info

Si nous avons des informations statiques telles que le nom de l’application ou sa version qui ne change pas pendant longtemps, il est judicieux d’ajouter ces détails dans notre fichierapplication.properties:

## Configuring info endpoint
info.app.name=Spring Sample Application
info.app.description=This is my first spring boot application
info.app.version=1.0.0

C’est tout ce que nous devons faire pour rendre ces données disponibles sur le point de terminaison/info. Spring ajoutera automatiquement toutes les propriétés préfixées avecinfo au point de terminaison/info:

{
  "app": {
    "description": "This is my first spring boot application",
    "version": "1.0.0",
    "name": "Spring Sample Application"
  }
}

3. Variables d'environnement dans / info

Exposons maintenant une variableEnvironment dans notre point de terminaison/info:

info.java-vendor = ${java.specification.vendor}

Cela exposera le fournisseur Java à notre point de terminaison/info:

{
  "app": {
    "description": "This is my first spring boot application",
    "version": "1.0.0",
    "name": "Spring Sample Application"
  },
  "java-vendor": "Oracle Corporation",
}

Veuillez noter que toutes les variables d'environnement sont déjà disponibles sur le point de terminaison/env. Cependant, la même chose peut également être exposée rapidement sur le point de terminaison/info.

4. Données personnalisées de la couche de persistance

Allons maintenant plus loin et exposons quelques données utiles du stockage de persistance.

Pour y parvenir, nous devons implémenter l'interfaceInfoContributor et remplacer la méthodecontribute():

@Component
public class TotalUsersInfoContributor implements InfoContributor {

    @Autowired
    UserRepository userRepository;

    @Override
    public void contribute(Info.Builder builder) {
        Map userDetails = new HashMap<>();
        userDetails.put("active", userRepository.countByStatus(1));
        userDetails.put("inactive", userRepository.countByStatus(0));

        builder.withDetail("users", userDetails);
    }
}

La première chose est que nous devons marquer la classe d'implémentation comme un@Component. Ajoutez ensuite les détails requis à l'instanceInfo.Builder fournie à la méthodecontribute().

Cette approche nous offre une grande flexibilité concernant ce que nous pouvons exposer à notre point de terminaison/info:

{
  ...other /info data...,
  ...
  "users": {
    "inactive": 2,
    "active": 3
  }
}

5. Conclusion

Dans ce didacticiel, nous avons examiné différentes façons d'ajouter des données personnalisées à notre point de terminaison/info.

Notez que nous discutons également de la façon d'ajoutergit information au point de terminaison/info.

Comme toujours, le code source complet de cet article se trouveover on GitHub.