Intergiciels et services

Rappels Spring

M2TIW - TIW1 - Emmanuel Coquery

Composants

(vision très simplifiée)

  • Briques logiciels (objets)
  • interagissant les unes avec les autres
  • pour implémenter une application
  • chaque ayant une responsabilité limité

Spring

  • Collection de frameworks et de bibliothèques
  • basée sur la notion de composant (Spring Bean)
  • implémentant/facilitant la mise en œuvre de “design patterns”

Contexte Spring

  • Ensemble de composants Spring
  • instanciés et configurés
  • rendus accessibles les uns aux autres
    e.g. par injection via @Autowired
  • mecanique de contexte: Spring Core

Exemple de contexte

(extrait)

contexte-simple

Exemple de contexte

(vue d’ensemble)

contexte-simple

Configuration par annotation Java

  • Syntaxe: @UneAnnotation(p1,p2,...)
  • Indique des informations utilisées par le framework pour:
    • Faire d’une classe un bean
    • Injecter un bean dans un autre
      (i.e. le rendre accessible dans un champ)
    • Exposer un contrôleur sur une url
    • etc

Spring MVC

  • Ensemble de composants permettant de mettre en place une application Web
  • Permet de définir les composants Web propres à l’application

MVC

  • @Controller: indique un composant Contrôleur, à combiner avec @RequestMapping pour le chemin
  • @Service: indique un composant Métier

Rest Controller

@RestController

  • spécialisation de @Controller
  • gère les aspects vue dans le cadre d’une API REST
    • négociation de contenu
    • récupération des paramètres
      @RequestBody, @PathVariable, …
    • chemins et méthodes HTTP @GetMapping, @DeleteMapping, etc

Digression OpenAPI / Swagger

Format pour spécifier une API REST

  • Permet de documenter
  • Outils (interface web, genération de code)
  • Springfox pour générer une spécification à partir du code

Aller à Spring Data/Security