Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Spring Boot 1.3 pour le web

Spring Boot 1.3 pour le web

Spring Boot est déjà très populaire parmi les développeurs et apporte une approche “convention over configuration” flexible pour la création d’applications. Cette session université va se concentrer sur le développement d’une application web pour la gestion des clés de configuration Spring Boot.

Nous verrons les nouveautés de Spring Boot 1.3, comme les devtools! Nous utiliserons aussi les fonctionnalités de validation, de cache applicatif; nous pourrons aussi configurer notre conteneur de servlet et voir comment gérer au mieux les ressources statiques de nos applications “server-side” classiques ou AngularJS.

Etape suivante, la production! Nous pourrons déployer notre application en prod dans un serveur d’application, ou comme un service systemd, ou encore dans le cloud.

Stéphane Nicoll

April 20, 2016
Tweet

More Decks by Stéphane Nicoll

Other Decks in Programming

Transcript

  1. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Boot 1.3 pour le web Stéphane Nicoll @snicoll Brian Clozel @brianclozel
  2. Externalized Configuration § Gérer la configuration d’une application § application-*.properties,

    application.yml § Clés définies par l’équipe Spring Boot
 « server.port », « spring.datasource… »
  3. Création d’une appli web pour gérer ces clés de props

    § Charger les artifacts maven § Lire les méta-données depuis les artifacts maven § Générer un modèle représentant les différences § Orchestrer le tout dans une application web!
  4. Spring MVC Resource chain + Boot integration § Gérer les

    ressources statiques de l’application § Plus d’exemples: • https://github.com/bclozel/spring-resource-handling • https://github.com/bclozel/resource-handling-workshop
  5. Actuator: custom Health check @Bean public HealthIndicator forTheWebHealthIndicator() { return

    () -> { if (new Random().nextBoolean()) { return Health.up().build(); } else { return Health.down() .withDetail("Ooops", 42).build(); } }; }
  6. Actuator: CounterService @Autowired private CounterService counterService; private void logMetrics(DiffRequest diffRequest)

    { this.counterService.increment("diff.from." + diffRequest.getFromVersion()); this.counterService.increment("diff.to." + diffRequest.getToVersion()); }
  7. Caching auto-configuration in Spring Boot @Bean public JCacheManagerCustomizer cacheManagerCustomizer() {

    return cm -> { cm.createCache("diffs", new MutableConfiguration<>() .setExpiryPolicyFactory(CreatedExpiryPolicy .factoryOf(Duration.ONE_HOUR)) .setStoreByValue(false) .setStatisticsEnabled(true)); }; }
  8. Create your own type safe config classes § Describe app

    properties in POJOs + javadoc § Declare them as @ConfigurationProperties § Scan them with @EnableConfigurationProperties § Metadata is generated by spring-boot-configuration-processor § Get IDE support and type-safe configuration in your app!
  9. Spring Framework 4.2 integration § Jackson @JsonView § HTTP Caching

    improvements § CORS support with @CrossOrigin
  10. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The Spring BOF Jeudi 19h45-20h35
  11. Merci! Unless otherwise indicated, these slides are 
 © 2013-2016

    Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Stéphane Nicoll
 [email protected] 
 Brian Clozel [email protected]