Introduction à spring boot

Architecte Java à SQLI
4 Oct 2016
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
Introduction à spring boot
1 sur 19

Contenu connexe

Tendances

Support de cours angularSupport de cours angular
Support de cours angularENSET, Université Hassan II Casablanca
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBENSET, Université Hassan II Casablanca
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsENSET, Université Hassan II Casablanca
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logicielENSET, Université Hassan II Casablanca
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4ENSET, Université Hassan II Casablanca

Tendances(20)

Similaire à Introduction à spring boot

SpringiocSpringioc
SpringiocSalim Hamidi
Présentation nouveauté java7Présentation nouveauté java7
Présentation nouveauté java7Cynapsys It Hotspot
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursHoracio Gonzalez
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
22
2Fatma Riahi
JdbcJdbc
Jdbcmohamed el haddad

Plus de Antoine Rey

Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
Spring Framework Petclinic sample applicationSpring Framework Petclinic sample application
Spring Framework Petclinic sample applicationAntoine Rey
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8Antoine Rey
Retours Devoxx France 2016Retours Devoxx France 2016
Retours Devoxx France 2016Antoine Rey
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsAntoine Rey
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JSAntoine Rey

Introduction à spring boot

Notes de l'éditeur

  1. Source : https://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016-trends/ Sprint Boot 1.0 est sorti en 2013 http://www.indeed.com/jobtrends/q-spring-and-boot.html
  2. Convention over Configuration : Opinionated view of the Spring platform and third-party libraries. Plus ou peu de configuration Spring. Pas de code généré : pas de code Java ni de configuration XML ou Java Déploiement facilité : pas de serveur à installer, exécution d’un JAR auto-exécutable avec un java –jar myappli.jar, serveur Jetty/Undertow/Tomcat embarqué Prêt pour la production : configuration externalisée, profils de conf, surcharge de conf, monitoring (actuator), services Windows et Linux, support du CORS, remote shell Mais également : Spring Boot gère pour vous la version des frameworks compatibles les uns avec les autres
  3. Encore plus simple en Groovy Support de Graddle et de Ant
  4. Autres moteurs de templates : Velocity, JSP (pas en JAR exécutable)
  5. DataSourceAutoConfiguration : https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration.java EmbeddedDatabaseConnection : https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/EmbeddedDatabaseConnection.java
  6. java -jar myapp,jar --spring.profiles.active=production
  7. https://spring.io/blog/2016/08/30/custom-test-slice-with-spring-boot-1-4
  8. Exemple créé à partir de la classe https://github.com/spring-projects/spring-petclinic/blob/springboot/src/test/java/org/springframework/samples/petclinic/web/OwnerControllerTests.java @WebMvcTest recherche les beans @Controller, @ControllerAdvice, @JsonComponent, Filter, WebMvcConfigurer et HandlerMethodArgumentResolver
  9. 1. GÈnÈrer un projet avec Spring Initializr depuis IntelliJ Choisir web, JPA, thymeleaf   2. Ajout la dÈpendance vers h2 dans le pom.xml <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> 3. CrÈation de la classe Hello public class Hello {   private final long id; private final String name;   public Hello(long id, String name) { this.id = id; this.name = name; }   public long getId() { return id; }   public String getName() { return name; } }   4. Ajout du contrÙleur @RestController public class HelloController {   private static final String template = "Hello, %s!"; private final AtomicLong counter = new AtomicLong();   @RequestMapping("/hello/{name}") public Hello sayHello(@PathVariable String name) { return new Hello(counter.incrementAndGet(), String.format(template, name));   } } 5. Configuration du application.properties logging.level.org.springframework.web=INFO     6. Utilisation de Jetty ‡ la place de Tomcat Modification du pom.xml : <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>   7. Utilisation des actuators Ajout dans le pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 8. Ajout d'informations   ComplÈeter application.properties : info.exemple=Test Puis http://localhost:8082/info   Ajout via maven : <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <!-- Spring Boot Actuator displays build-related information if a META-INF/build-info.properties file is present --> <goals> <goal>build-info</goal> </goals> <configuration> <additionalProperties> <encoding.source>${project.build.sourceEncoding}</encoding.source> <encoding.reporting>${project.reporting.outputEncoding}</encoding.reporting> <java.source>${maven.compiler.source}</java.source> <java.target>${maven.compiler.target}</java.target> </additionalProperties> </configuration> </execution> </executions> </plugin>       9. Personnalisation de la banniËre avec Duke   10. DÈmarrage du JAR java -jar target/demo-0.0.1-SNAPSHOT.jar   11. Changement de port par configuration, paramËtre et profile Spring --server.port=9090 application-prod.properties et --spring.profiles.active=prod      
  10. Article complet sur http://javaetmoi.com/2016/08/migrer-vers-spring-boot/
  11. Prêt pour la Production : health-check, monitoring, pistes d’audit, métriques => actuator Initialisation de base de données : Flyway et Liquibase. CRaSH permet de connecter à l’application en ssh ou telnet Spring Boot CLI : outils en ligne de commande permetta,t d’exéciton des scripts Groovy. Exemple : spring run app.groovy Service Linux : support de Systemd et init.d (System V)