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

Introduction to Maven, Spring & Spring Boot

Anwar Ziani
December 30, 2015

Introduction to Maven, Spring & Spring Boot

Overview of Maven and the Spring Framework and Goodness of Spring Boot

Anwar Ziani

December 30, 2015
Tweet

More Decks by Anwar Ziani

Other Decks in Programming

Transcript

  1. 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
  2. pom.xml Project Object Model (POM) <project> <!-- model version est

    toujours 4.0.0 pour Maven 2 --> <modelVersion>4.0.0</modelVersion> <!-- coordonnées du project, des informations qui caractérisent ce projet uniquement --> <groupId>com.ensat.monapp</groupId> <artifactId>mon-app</artifactId> <version>1.0</version> <!-- les librairies dont dépend ce projet --> <dependencies> <dependency> <!-- coordonnées de la librairie --> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <!-- cette dépendance est utilisée uniquement dans le contexte “test” --> <scope>test<scope> </dependency> </dependencies> </project>
  3. 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
  4. Problématiques Java EE • Mauvaise séparation des préoccupations • Complexité

    • Mauvaise interopérabilité • Mauvaise testabilité
  5. Les solutions de Spring • La notion de conteneur léger

    • La programmation orientée aspect • L’intégration de frameworks tiers
  6. 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
  7. 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.
  8. 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..
  9. 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
  10. Conteneur léger ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); Il existe trois

    implémentations de l’interface ApplicationContext: • FileSystemXmlApplicationContext • ClassPathXmlApplicationContext • WebXmlApplicationContext
  11. 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; 
 }
 }
  12. Types d’injections • Setter <bean name="readerService" class="com.spring.ReaderService">
 <property name="reader" ref="fileReader"

    /> 
 </bean> <bean name="fileReader" class="com.spring.FileReader">
 <property name="fileName" value="../resources/myfile.txt"/> 
 </bean>
  13. 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;
 } }
  14. Types d’injections • Annotations @Autowired @Resource @PostConstruct @PreDestroy @Qualifier @Required

    @Bean @Component @Service @Repository Quelques annotations importantes:
  15. 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
  16. 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!
  17. Juergen Hoeller Spring Framework project lead Linz, Austria Josh Long

    Spring Developer Advocate San Francisco, CA
  18. 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
  19. 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
  20. 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