Java avancé

Description de la formation

Concevoir une application Java permettant l'accès et la manipulation de données structurées en utilisant des API Java.

Les développeurs Java sont en forte demande, tant par les startups développant de nouvelles applications mobiles que par les grandes entreprises cherchant à maintenir et à faire évoluer leurs systèmes de gestion existants.

Au cours de cette formation, certaines des fonctionnalités plus avancées offertes par la plate-forme Java seront enseignées, comme la programmation concurrente et l'exploitation d'une base de données relationnelle. Des astuces et meilleures pratiques de développement seront également transmises par le biais des exercices. (Anciennement JAV135 au Centre de formation et de transfert du CRIM)

Objectifs pédagogiques

À la fin de cette formation, vous serez en mesure de :

  • Développer une application performante tirant profit d'un ordinateur multicœurs;
  • Utiliser les concepts de métaprogrammation et de réflexion;
  • Lire et écrire des données à l'aide du format d'échange universel XML;
  • Persister et récupérer vos données en utilisant une base de données relationnelle;
  • Développer une interface web à votre application;
  • Appliquer les techniques de programmation concurrente;
  • Créer des annotations personnalisées et utiliser des annotations existantes;
  • Utiliser les fonctionnalités du module JAXB, du module JDBC et des modules Servlet et JSP.

Méthodologie

Plusieurs méthodes d’apprentissage permettant de mesurer votre progrès et votre intégration des concepts sont utilisés tout au long de la formation :


Exposé interactif (50 %), exercices (50 %)

Clientèle visée

Professionnels et techniciens spécialisés en TI

Particularité

Pour être en mesure de suivre cette formation, il faut avoir une connaissance de base du langage Java et une connaissance d'une base de données relationnelle (ex. : Oracle, MySQL, PostgreSQL).

    Programmation concurrente

    • Threads : définition et cycle de vie;
    • Pause, jointure et interruption;
    • Problématiques d'accès concurrent à des ressources partagées;
    • Synchronisation, blocs gardés et interblocage;
    • Classes thread-safe et immuabilité;
    • Executors et services d'exécution.

    Réflexion

    • Obtention d'information sur un objet existant;
    • Construction d'objets et invocation de méthodes.

    Métaprogrammation

    • Annotations : définition et attributs;
    • Annotations intrinsèques;
    • Déclaration d'une annotation personnalisée et interprétation.

    Traitement de documents XML

    • Format XML;
    • API de bas niveau : DOM, SAX, StAX;
    • JAXB;
    • Définition d'un schéma XML et génération des classes annotées JAXB;
    • Lecture, écriture et validation de documents XML.

    Connectivité avec base de données relationnelle

    • Concepts relationnels;
    • Concepts de base JDBC : drivers, connections et statements;
    • Chargement d'un driver, ouverture et fermeture d'une connexion;
    • Exécution de requêtes et mapping objet-relationnel;
    • Réutilisation des connexions avec DataSource;
    • Gestion des transactions;
    • Prévention des attaques de type 'SQL injection'.

    Interfaces Web

    • Principes architecturaux;
    • Containers web et à Tomcat;
    • Structure de base d'une application Web, packaging en format WAR;
    • Servlets : déclaration, mapping par URL, mapping par méthode;
    • JSP : développement et invocation;
    • JSTL : librairies et utilisation;
    • Sessions : identification, récupération et stockage d'attributs;
    • Filtres : déclaration, mapping par URL, mapping par servlet, développement.