Slide 1

Slide 1 text

LEMAACHI Saad EL HAJJAJI Saad ZIANI Anwar

Slide 2

Slide 2 text

Sommaire • Maven • Framework Spring • Spring Boot

Slide 3

Slide 3 text

Maven Definition Maven est un outil de gestion et d'automatisation des projets logiciels Java. • Il décrit comment un projet est crée • Il décrit ses dépendances

Slide 4

Slide 4 text

pom.xml Project Object Model (POM) 4.0.0 com.ensat.monapp mon-app 1.0 junit junit 3.8.1 test

Slide 5

Slide 5 text

Structure

Slide 6

Slide 6 text

Gestion des dépendances Projet pom.xml Repository Local Maven Repository distant Machine locale Serveur distant 1 2 3 4

Slide 7

Slide 7 text

Création du projet avec Maven Maven utilise le plugin archetype pour la creation des projects. Exemple : mvn archetype:generate -DgroupId=com.ensat -DartifactId=WebEcole -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false mvn tomcat:run

Slide 8

Slide 8 text

Problématiques Java EE • Mauvaise séparation des préoccupations • Complexité • Mauvaise interopérabilité • Mauvaise testabilité

Slide 9

Slide 9 text

Les solutions de Spring • La notion de conteneur léger • La programmation orientée aspect • L’intégration de frameworks tiers

Slide 10

Slide 10 text

Spring https://spring.io • Première version • Dernière version • Framework Java le plus utilisé! 1 octobre 2002 15 octobre 2015 (4.2.2) • Open Source • Plus d’une douzaine de projets

Slide 11

Slide 11 text

Spring

Slide 12

Slide 12 text

Inversion de contrôle Patron d'architecture commun à tous les frameworks.
 
 Il fonctionne selon le principe que le flot d'exécution d'un logiciel n ’ est plus sous le contrôle direct de l'application elle-même mais du framework.

Slide 13

Slide 13 text

Injection de dépendances Mécanisme qui permet d'implémenter le principe de l'inversion de contrôle.
 
 Elle s’appuie sur un objet assembleur -conteneur léger-, capable de gérer le cycle de vie des composants d’une application, ainsi que leurs dépendances, en les injectant de manière appropriée..

Slide 14

Slide 14 text

Conteneur léger Le conteneur léger de Spring peut être vu comme une simple fabrique d’objets Java. Son fonctionnement de base consiste à définir des objets dans un fichier XML. Ce fichier est ensuite chargé par Spring, qui gère alors l’instanciation des objets. Le contexte d’application de Spring correspond à l’interface ApplicationContext. Il s’agit du point d’entrée pour une application qui souhaite utiliser des Beans gérés par Spring. contexte

Slide 15

Slide 15 text

Conteneur léger ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); Il existe trois implémentations de l’interface ApplicationContext: • FileSystemXmlApplicationContext • ClassPathXmlApplicationContext • WebXmlApplicationContext

Slide 16

Slide 16 text

Types d’injections • Setter • Constructeur • Setter & Constructeur • Annotations

Slide 17

Slide 17 text

Types d’injections • Setter public class ReaderService { private Reader reader = null; public ReaderService() {} public void setReader(Reader reader) { this.reader = reader; 
 } public Reader getReader() { 
 return reader; 
 }
 }

Slide 18

Slide 18 text

Types d’injections • Setter 
 
 
 


Slide 19

Slide 19 text

Types d’injections • Constructeur public class ReaderService { private Reader reader = null;
 private String type = null; public ReaderService(Reader reader, String type) { this.reader = reader;
 this.type = type;
 } }

Slide 20

Slide 20 text

Types d’injections • Constructeur 


Slide 21

Slide 21 text

Types d’injections • Setter & Constructeur 


Slide 22

Slide 22 text

Types d’injections • Annotations @Autowired @Resource @PostConstruct @PreDestroy @Qualifier @Required @Bean @Component @Service @Repository Quelques annotations importantes:

Slide 23

Slide 23 text

Spring Boot

Slide 24

Slide 24 text

Spring Boot favorise la Convention plutôt que la configuration et il est conçu pour simplifier le démarrage et le développement de nouvelles applications Spring. Spring Boot propose une approche dogmatique de la configuration, qui permet d'éviter aux développeurs de redéfinir la même configuration à plusieurs endroits du code. Spring Boot

Slide 25

Slide 25 text

Fonctionnalités • Créer des applications Spring autonomes • Intégrer Tomcat directement • Offre un POM de départ spécial pour simplifier la configuration Maven • Configurer automatiquement Spring à chaque fois que possible • Aucune génération de code et aucune configuration XML!

Slide 26

Slide 26 text

Commencez ici: http://start.spring.io/

Slide 27

Slide 27 text

Juergen Hoeller Spring Framework project lead Linz, Austria Josh Long Spring Developer Advocate San Francisco, CA

Slide 28

Slide 28 text

Démo

Slide 29

Slide 29 text

Thymeleaf est un moteur de template, écrit en Java pouvant générer du XML/XHTML/HTML5. Thymeleaf peut être utilisé dans un environnement web (utilisant l'API Servlet) ou non web. Il permet la génération des vues pour les applications web basées sur le modèle MVC. thymeleaf

Slide 30

Slide 30 text

Avantages: 
 • Le code HTML peut être affiché correctement directement dans le navigateur sans l’utilisation d’un serveur (pas de dépendance vis-à-vis de l'API Servlet) • Cache performant et configurable • Une documentation très complète contenant de nombreux exemples est disponible thymeleaf

Slide 31

Slide 31 text

Bibliographie • Getting Started with Spring Boot
 (https://www.youtube.com/watch?v=sbPSjI4tt10) • Just Spring - Madhusudhan Konda • http://spring.io/guides • Spring Boot web application series 
 (https://springframework.guru/blog/) #video #livre #guides #tutoriel

Slide 32

Slide 32 text

merci!