Quelles méthodes de gestion des transactions dans Spring connaissez-vous?
Java
Dans quel domaine de visibilité les beans sont-ils créés par défaut dans Spring?
Avez-vous une architecture de microservices : avez-vous écrit l'annotation dans un service spécifique ou pour l'ensemble du projet ? Comment avez-vous distribué la solution ?
Parlez d'un cas d'optimisation d'une requête SQL : quel était le problème et comment a-t-il été résolu ?
Comment utiliser l'annotation en pratique ? Avez-vous écrit vos annotations personnalisées ?
Comment lutter contre le problème N+1 ?
Revue de code : regardez la méthode getDivisions (captures d'écran du code) — qu'avez-vous aimé, qu'avez-vous moins aimé ? L'utilisation de l'ordre insensible, la gestion des erreurs, le streaming, etc. sont-ils justifiés ?
Que signifie propagation lorsqu'une méthode est appelée depuis le contexte d'une transaction déjà ouverte?
Qu'est-ce que le patron de conception Singleton?
Si une entité est chargée en une seule requête et que nous appelons la méthode pour obtenir l'entité liée, combien de requêtes seront effectuées au total?
Quels niveaux d'isolation des transactions connaissez-vous?
Comment expliqueriez-vous à un autre développeur ce qu'est Spring Data et quelle est sa valeur?
Qu'est-ce qu'une annotation en Java ? Comment l'expliqueriez-vous à un autre développeur ?
Avez-vous déjà utilisé TransactionTemplate dans votre travail ? Donnez un exemple où vous avez décidé de faire un rollback ou non de la transaction de manière programmatique.
L'utilisation de l'annotation @Transactional(readOnly=true) dans cette méthode est-elle justifiée?
La méthode save() dans le référentiel JPA crée une nouvelle entité ou met à jour une existante?
Quelles méthodes de gestion des exceptions avez-vous utilisées dans les applications Spring Boot?
Tâche : il y a deux microservices, il faut transférer une grande table (plus de 3 millions d'enregistrements) d'un service à l'autre (faire une copie locale). Comment le feriez-vous, en tenant compte du fait que les données peuvent changer fréquemment et qu'une transaction (tout ou rien) est nécessaire ?
Parlez-moi du cache que vous avez mentionné : comment il a été implémenté, s'il y a eu des problèmes lors du travail sur plusieurs instances, et comment ils ont été résolus (y compris via Kafka).
Pourquoi la portée singleton est-elle choisie par défaut pour les beans et pourquoi la création d'un objet est-elle considérée comme une opération coûteuse?