Java avancé

But de la formation

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

Description

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, telles que 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

- 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 à leur 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

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

Clientèle visée

Professionnel et technicien 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).

Contenu

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
Hafed Benteftifa

Hafed Benteftifa

Ph.D.

Hafed Benteftifa enseigne les techniques informatiques, tant dans les institutions publiques que privées depuis près de 23 ans. Il agit également à titre de consultant dans la migration d'applications Oracle. Il a été parmi les premiers à proposer des formations sur la plateforme mobile Android dans la région du grand Montréal.