Antoine Gauthier

Consultant Java avec une dizaine d’années d’expérience dans le développement de logiciels, Antoine GAUTHIER a accompagné aussi bien des grands comptes que des éditeurs de logiciels, de la phase de conception jusqu’à la mise en production de solutions Java robustes et évolutives. Son expérience, sa pédagogie et son engagement dans la communauté Java se complètent pour offrir aux lecteurs un apprentissage clair, structuré et pragmatique du langage.

Illustration faire du RAG en Java avec LangChain4J

Faire du RAG en Java avec LangChain4J

J’ai précédemment montré, dans un article dédié, comment faire du RAG (Retrieval-Augmented Generation) avec Spring AI et une base de données vectorielle Postgres. Aujourd’hui, je vais vous présenter comment faire du RAG grâce à une autre technologie, la librairie Open source : LangChain4J. Commençons par définir ce qu’est un système RAG. Pour cela je vais reprendre […]

Faire du RAG en Java avec LangChain4J Lire la suite »

RAG Java : Tutoriel pratique Spring AI et PostgreSQL pgvector

Implémenter RAG avec Java : Spring AI et base vectorielle PostgreSQL

Introduction En lisant le rapport Malt Tech Trends 2025 sur les compétences liées à l’intelligence artificielle les plus recherchées sur la plateforme on retrouve en première position : le RAG (Retrieval-Augmented Generation). Dans cette article, nous définirons ce qu’on entend précisément par RAG et nous appliquerons une technique de RAG en Java grâce à Spring AI et

Implémenter RAG avec Java : Spring AI et base vectorielle PostgreSQL Lire la suite »

Illustration article Jspecify java

JSpecify ou la fin des NullPointerException

La gestion des valeurs null en Java a longtemps été le talon d’Achille des développeurs. Avec JSpecify 1.0.0, cette époque touche enfin à sa fin. Ce nouveau standard unifie l’écosystème Java autour d’annotations de nullabilité cohérentes et puissantes, transformant les redoutables NullPointerException en erreurs détectées dès la compilation. JSpecify représente bien plus qu’une simple bibliothèque

JSpecify ou la fin des NullPointerException Lire la suite »

illustration de l'article sur Quarkus SFTP

SFTP + PostgreSQL : Construire un système de téléchargement de fichiers avec Quarkus Dev Services

En prenant mon café ce matin, je suis tombé sur un excellent article technique de The Main Thread qui présentait une approche vraiment élégante pour gérer les fichiers en entreprise avec Quarkus. L’auteur montrait comment dépasser les simples tutoriels « hello world » pour construire un vrai système de gestion de fichiers qui pourrait fonctionner en production.

SFTP + PostgreSQL : Construire un système de téléchargement de fichiers avec Quarkus Dev Services Lire la suite »

Illustration du String split regex Java

Comment convertir une chaîne séparée par des virgules en ArrayList en Java

J’ai découvert récemment un excellent article sur le blog Java67 qui abordait une problématique que je rencontre régulièrement dans mes projets Java, particulièrement lors du traitement de fichiers CSV : comment transformer efficacement une chaîne de caractères contenant des éléments séparés par des virgules en ArrayList ? Cette question peut sembler simple au premier abord, mais elle

Comment convertir une chaîne séparée par des virgules en ArrayList en Java Lire la suite »

Illustration : Comprendre et Maîtriser les Fuites Mémoire en Java

Fuite Mémoire en Java : Comprendre et Maîtriser

Ce matin en consultant ma boîte mail je découvre une article Medium très intéressant intitulé « Java Memory Leaks: Detection and Prevention » (Fuite mémoire en Java : détecter et prévenir) par Alexander Obregon. Au lieu de le lire passivement et de passer à autre chose, je décide de le traduire, le compléter et le publier sur le blog

Fuite Mémoire en Java : Comprendre et Maîtriser Lire la suite »

mise à jour et suppression en masse en JPA et Hibernate

Mise à jour et suppression en masse avec JPA et Hibernate

Cette article est une traduction de Bulk Update and Delete with JPA and Hibernate par Vlad Mihalcea Introduction : Qu’est-ce que les opérations en masse ? Avant de plonger dans les détails techniques, commençons par comprendre ce que signifient les « opérations en masse » dans le contexte des bases de données. Qu’est-ce qu’une opération en masse ?

Mise à jour et suppression en masse avec JPA et Hibernate Lire la suite »

Illustration ArrayList vs LinkedList en Java

Différence entre ArrayList et LinkedList en Java

TL;DR : ArrayList et LinkedList sont deux implémentations de List en Java. La différence fondamentale : ArrayList utilise un tableau redimensionnable, LinkedList une liste chaînée doublement liée. En préparant un entretien technique récemment, j’ai demandé à un LLM quelles questions techniques pourraient m’être posées. Parmi les réponses, une question est revenue avec insistance : « Quelle est la

Différence entre ArrayList et LinkedList en Java Lire la suite »

Illustration Java 25 Import de modules

Java 25 : Import de Modules

Avec Java 25, une nouvelle fonctionnalité a été introduite : l’import de modules. Cette nouveauté vise à simplifier la gestion des imports dans les projets Java, notamment dans les applications de grande taille où les listes d’importations peuvent devenir longues et difficiles à maintenir. Cet article explique en détail le fonctionnement, les avantages, les limites et

Java 25 : Import de Modules Lire la suite »

cache premier niveau JPA

Le cache de premier niveau JPA et Hibernate

Note de traduction : Cet article est une traduction française de l’article original de Vlad Mihalcea : The JPA and Hibernate first-level cache Introduction Dans cet article, je vais expliquer comment fonctionne le mécanisme de cache de premier niveau JPA et Hibernate et comment il peut améliorer les performances de votre couche d’accès aux données.

Le cache de premier niveau JPA et Hibernate Lire la suite »

📚 Nouveau sur Java ? Mon livre vous guide pas à pas dans l'apprentissage !

X