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.