
Vous êtes développeur Java et vous voulez maîtriser l'architecture que Slack, Notion, Shopify et tous les grands SaaS utilisent ?
Bienvenue dans le guide le plus complet sur le Multi-Tenancy avec Spring Boot et Angular.
Dans ce cours, vous allez construire StockPro — une application SaaS complète de gestion de stock multi-tenant — du premier fichier jusqu'à une application prête pour la production.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CE QUE VOUS ALLEZ CONSTRUIRE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Une application SaaS complète où chaque entreprise (tenant) accède à la même plateforme mais ne voit QUE ses propres données. L'application comprend :
- Une API REST complète (CRUD produits, catégories, mouvements de stock)
- Un système d'authentification JWT avec chiffrement asymétrique RSA
- Un frontend Angular moderne avec dashboard, formulaires et navigation
- Deux approches d'isolation multi-tenant implémentées et testées
- Des migrations automatiques de base de données avec Flyway
- Une gestion des utilisateurs avec rôles et permissions par tenant
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LES 2 APPROCHES MULTI-TENANT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ce cours ne se contente pas de vous montrer UNE approche. Vous allez implémenter les deux stratégies les plus utilisées en entreprise :
Approche 1 — Base de données unique avec colonne tenant_id
→ Filtres Hibernate (@FilterDef, @Filter)
→ Aspect AOP pour l'activation automatique
→ TenantContext avec ThreadLocal
Approche 2 — Un schéma PostgreSQL dédié par tenant
→ MultiTenantConnectionProvider personnalisé
→ TenantIdentifierResolver
→ Provisioning automatique de schéma à la création d'un tenant
→ Cache pour la résolution de schéma
Et la 3ème approche (base de données séparée par tenant) est expliquée en théorie avec des diagrammes comparatifs pour vous donner une vision complète.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STACK TECHNIQUE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Backend :
- Java 21
- Spring Boot 3
- Spring Security (JWT + RSA asymétrique)
- Spring Data JPA / Hibernate (filtres multi-tenant)
- Flyway (migrations automatiques)
- PostgreSQL
- Docker & Docker Compose
- Swagger / OpenAPI
Frontend :
- Angular 21 (standalone components)
- PrimeNG (composants UI professionnels)
- OpenAPI Generator (génération automatique des services HTTP)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONTENU DU COURS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Le cours est structuré de manière progressive — on part de zéro et on monte en complexité :
Section 1 — Les fondations du Multi-Tenancy
→ Comprendre le multi-tenancy, ses avantages, ses défis
→ Les 3 stratégies d'isolation (avec diagrammes comparatifs)
Section 2 — Construire l'application mono-tenant
→ Modélisation des entités (Produit, Catégorie, MouvementStock)
→ Classe abstraite d'audit (created_at, updated_at, created_by...)
→ API REST complète avec DTOs, mappers et services génériques
→ Configuration PostgreSQL + Flyway
Section 3 — Transformation en multi-tenant (Approche 1)
→ TenantFilter, TenantContext (ThreadLocal), Hibernate Filter
→ Injection automatique du tenant_id avec @PrePersist
→ Tests d'isolation entre tenants
Section 4 — Sécurité JWT avec chiffrement RSA
→ Génération de la paire de clés RSA (private.pem / public.pem)
→ JwtService — Signer avec la clé privée, vérifier avec la clé publique
→ JwtAuthenticationFilter — Validation du token à chaque requête
→ Le tenant_id est embarqué dans le JWT → plus besoin de header
Section 5 — Multi-tenancy avancé (Approche 2 — Schéma par tenant)
→ Provisioning automatique du schéma
→ TenantSchemaResolver avec cache
→ MultiTenantConnectionProvider
→ AuditorAware pour la traçabilité
Section 6 — Le frontend Angular complet
→ Landing page, login, register
→ Dashboard avec KPIs et graphiques
→ Pages CRUD : produits, catégories, mouvements, utilisateurs
→ Guards, intercepteurs HTTP, gestion du JWT côté client
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
APPROCHE PÉDAGOGIQUE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Chaque concept est expliqué avec des diagrammes clairs AVANT de coder
- On construit d'abord en mono-tenant, puis on transforme → vous comprenez le "pourquoi" de chaque changement
- Le code est commenté et structuré de manière professionnelle
- Des tests en direct à chaque étape pour vérifier que tout fonctionne
- Git commit à la fin de chaque section → vous pouvez reprendre à tout moment
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
À QUI S'ADRESSE CE COURS ?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ce cours est fait pour vous si :
- Vous êtes développeur Java / Spring Boot et vous voulez apprendre l'architecture multi-tenant
- Vous voulez construire votre propre SaaS et vous cherchez un guide de A à Z
- Vous préparez des entretiens techniques et vous voulez un projet portfolio impressionnant
- Vous êtes développeur fullstack et vous voulez maîtriser Spring Boot + Angular ensemble
- Vous voulez comprendre comment Slack, Notion, Shopify isolent les données de leurs clients
Prérequis recommandés :
- Connaissances de base en Java (variables, classes, interfaces)
- Avoir déjà vu Spring Boot est un plus (mais pas obligatoire)
- Connaissances de base en HTML/CSS (pour le frontend Angular)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
À LA FIN DE CE COURS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vous aurez :
- Une application SaaS multi-tenant complète dans votre portfolio
- La maîtrise de 2 approches d'isolation multi-tenant
- Une compréhension solide de la sécurité JWT avec chiffrement RSA
- L'expérience de construire un fullstack Spring Boot + Angular de A à Z
- Les compétences les plus demandées sur le marché Java en 2025
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ce n'est pas un cours théorique. C'est un cours 100% pratique où vous construisez une vraie application, ligne par ligne, avec moi.
On se retrouve dans la première leçon ?