Developpez.com - Rubrique Java Web

Le Club des Développeurs et IT Pro

Utilisez-vous les micro frameworks Java en 2016 ? Si oui, lesquels ?

Partagez votre expérience !

Le 2016-04-15 23:43:54, par Robin56, Modérateur
Comme nous avons pu le voir à travers le sondage sur les frameworks Web Java, l'écosystème est riche dans ce domaine. Tous adoptent une approche assez similaire avec (en résumé) :
  • une architecture suivant un modèle MVC (ou apparenté) ;
  • une exécution côté serveur.

Mais au sein des applications web d'aujourd'hui, celles-ci demandent de plus en plus de réactivité et de rapidité d'exécution. Ces principes peuvent alors paraître contraignants et ne pas favoriser une certaine agilité. De ce constat est née l'émergence d'une nouvelle catégorie de frameworks : les micro-frameworks. L'on peut citer, par exemple : SparkJava ou Vert.X.

Un micro-framework Java peut être vu comme une boîte à outils, une API offrant des fonctionnalités minimales permettant ainsi de s'abstraire de la lourdeur d'un framework web Java classique.

Au vu de cette mouvance, nous avons donc décidé de mettre en place un sondage en cette année 2016 concernant votre utilisation des micro-frameworks. Profitez-en pour donner les raisons de votre choix en insistant par exemple sur :
  • les fonctionnalités utilisées ;
  • la prise en main ;
  • la documentation ;
  • la communauté.

Merci à tous pour votre participation.

Nicolas pour l'équipe Java
  Discussion forum
13 commentaires
  • Patriarch24
    Membre expérimenté
    Bonjour,
    Attention : Spark n'est pas un micro framework, à ne pas confondre avec sparkjava. On peut citer aussi, de manière non exhaustive Spring Boot, ninja, play, restx, RestExpress, jodd, jooby, pippo... Je ne les connais pas tous, mais j'ai pu en tester quelques uns, et tous répondent à 99% des fonctions attendues de tels outils.

    Pour ma part, j'utilise vert.x, qui propose toutes les fonctionnalités nécessaires, une excellent doc, et un style de programmation que j'apprécie.

    la lourdeur d'un framework web Java classique
    Lesquels par exemple ? Java EE ? Ça a bien changé, et c'est devenu beaucoup plus léger que par le passé (voir payara ou wildfly swarm).

    Petit aparté :
    Mais au sein des applications web d'aujourd'hui, celles-ci demandent de plus en plus de réactivité et de rapidité d'exécution. (...). De ce constat est née l'émergence d'une nouvelle catégorie de frameworks : les micro frameworks. L'on peut citer, par exemple : Spark ou Vert.X.
    Est-ce que ce texte a été relu ? Il me semble qu'il n'est pas très correct grammaticalement...
  • Gugelhupf
    Modérateur
    Spring Boot est juste un module Spring 4 pour simplifier la configuration du projet avec des annotations (ps: au lieu de se taper des fichiers XML tels que applicationContext.xml), donc ça reste du Spring.
    Pourquoi Restlet ? Il me semble que c'est une implémentation de JAX-RS (tout comme CXF, Jersey, RESTEasy etc), donc pourquoi ne pas avoir mis JAX-RS ?
  • barmic
    Membre actif
    J'utilise Vert.x. Je ne suis pas certains qu'on puisse vraiment parler de microframework vu qu'il est end-to-end (il gère tout de la requête HTTP à l'accès à la base de données, contrairement à sparkjava).

    Vert.x me plaît car il implémente un pattern reactor et que c'est une façon de faire que j'apprécie. La façon de l'utiliser avec de l'asynchrone à tous les étages me plaît beaucoup.

    Il n'est pas particulièrement simple à prendre en main par contre.
  • Elinyhs
    Membre à l'essai
    Envoyé par Gugelhupf
    Spring Boot est juste un module Spring 4 pour simplifier la configuration du projet avec des annotations (ps: au lieu de se taper des fichiers XML tels que applicationContext.xml), donc ça reste du Spring.
    Pourquoi Restlet ? Il me semble que c'est une implémentation de JAX-RS (tout comme CXF, Jersey, RESTEasy etc), donc pourquoi ne pas avoir mis JAX-RS ?
    Ce que tu décris est une partie de Spring Core, ce n'est absolument pas propre à Spring Boot.
    Spring Boot offre notamment une configuration automatique d'une multitude de composants de l'application : il est donc possible de créer une application Spring Boot avec juste une seule classe, comme celle de l'exemple du site officiel :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    package hello;
    
    import org.springframework.boot.*;
    import org.springframework.boot.autoconfigure.*;
    import org.springframework.stereotype.*;
    import org.springframework.web.bind.annotation.*;
    
    @Controller
    @EnableAutoConfiguration
    public class SampleController {
    
        @RequestMapping("/")
        @ResponseBody
        String home() {
            return "Hello World!";
        }
    
        public static void main(String[] args) throws Exception {
            SpringApplication.run(SampleController.class, args);
        }
    }
  • JackJnr
    Membre confirmé
    Je n'utilise qu'un seul framework parmi ceux cités dans la liste, mais pourquoi ne pas proposer plusieurs choix possibles ? J'imagine que certaines personnes ici en utilisent plus d'un
  • Robin56
    Modérateur
    Envoyé par JackJnr
    Je n'utilise qu'un seul framework parmi ceux cités dans la liste, mais pourquoi ne pas proposer plusieurs choix possibles ? J'imagine que certaines personnes ici en utilisent plus d'un
    Nous avons voulu mettre le sondage en mode "un vote" pour voir le ou les outils qui se démocratisaient le plus. Mais effectivement, nous aurions pu mettre le sondage en mode multi réponse.

    Envoyé par Patriarch24
    Bonjour,
    Attention : Spark n'est pas un micro framework, à ne pas confondre avec sparkjava.
    On parle bien de SparkJava et non de Spark (le sondage propose bien SparkJava). Le lien a été corrigé en conséquence, merci.

    Envoyé par Patriarch24
    Lesquels par exemple ? Java EE ? Ça a bien changé, et c'est devenu beaucoup plus léger que par le passé (voir payara ou wildfly swarm).
    Justement, nous aimerions avoir votre ressenti à ce sujet. Pourquoi utilisez vous ou non les micro frameworks ? Qu'est ce qu'ils vous apportent par rapport à l'utilisation des frameworks "classiques" ?

    Envoyé par Patriarch24
    Est-ce que ce texte a été relu ? Il me semble qu'il n'est pas très correct grammaticalement...
    Formulation modifiée, merci.
  • alves1993
    Membre éclairé
    Pour ma part SparkJava.
    Qui propose une prise en main assez simple et rapide et qui a été conçu dans le but d'augmenter la productivité des programmeurs.
  • Traroth2
    Membre émérite
    J'utilise vert.x pour des projets perso. La version 3 est très complète (sécurité, monitoring, modules d'accès aux données), mais change radicalement par rapport à la version 2. Peu de documentation en dehors de la doc officielle. La version 3 est aussi moins multilangage que la version 2, ce qui est dommage. Python, Clojure, Scala et Coffeescript ne sont plus supportés.
  • Tcharl
    Membre averti
    Perso, j'utilise un framework un peu plus complet, qui embarque aussi (optionnellement ) une partie UI et de la persistance: Osgiliath Enterprise framework. Une petite stack microservice basée sur OSGI/Karaf
  • Patriarch24
    Membre expérimenté
    Envoyé par Robin56
    Justement, nous aimerions avoir votre ressenti à ce sujet. Pourquoi utilisez vous ou non les micro frameworks ? Qu'est ce qu'ils vous apportent par rapport à l'utilisation des frameworks "classiques" ?
    Voici mes arguments :
    • un package léger*
    • démarrage d'application simple : java -jar app.jar
    • démarrage en quelques millisecondes (concernant vert.x au moins)


    * < 10 MB avec toutes les dépendances.