Derniere mise a jour : 9 fevrier 2026

Mini Framework MVC

2024 Java Web

Presentation

Objectif principal : Un mini framework web MVC en Java, style Spring MVC mais ultra simplifie. Routing par annotations, injection de dependances basique, moteur de templates.

Technologies utilisees : Java avec Servlets comme base. Reflection pour le scanning des annotations. Jetty embarque pour le serveur. Templates JSP ou custom.

Fonctionnalites cles : @Controller et @RequestMapping pour le routing, @Autowired pour l'injection, @PathVariable pour les parametres d'URL, templates avec variables, gestion des sessions.

Livrables attendus : Le framework en JAR + une app de demo (CRUD basique). Documentation sur comment creer des controllers.

Calendrier previsionnel : Trois semaines. La reflection en Java c'est puissant mais verbeux. Et comprendre le cycle de vie des Servlets ca prend du temps.

Parties prenantes & criteres de succes : Projet pour demystifier Spring. Apres ca je comprends ce que fait Spring sous le capot.

Le Defi

Le scanning des classes annotees. Au runtime, Java ne liste pas facilement toutes les classes d'un package. Et l'injection de dependances avec l'ordre de creation des beans, c'est un casse-tete (dependances circulaires).

La Solution

Pour le scanning, je lis le classpath et je charge les classes une par une pour verifier les annotations. Pour l'injection, je fais deux passes : d'abord je cree toutes les instances, puis je les connecte. Les dependances circulaires sont detectees et signalees.

Architecture Technique

DispatcherServlet qui recoit toutes les requetes et dispatch vers le bon controller. ClassScanner qui trouve les classes annotees au demarrage. Container qui gere les instances et l'injection. RouteRegistry qui mappe URL -> methode. ViewResolver qui rend les templates avec les donnees.

Points Cles

  • Routing par annotations
  • Injection de dependances
  • Serveur embarque

Apercu

Resultats & Apprentissages

Le framework marche pour des apps simples. Maintenant quand j'utilise Spring, je comprends ce qu'il fait. La reflection c'est magique mais lent, je comprends pourquoi Spring fait du scanning au demarrage et pas a chaque requete.

Evolutions Futures

Middlewares/intercepteurs. Validation des inputs avec annotations. ORM basique. Support des WebSockets. Peut-etre generation de code au lieu de reflection pour les perfs.

Retour aux projets Me contacter