1
Inleiding
- Goede praktijken: scheiding van verantwoordelijkheden, DRY, KISS, agnostische klassen, POJO.
- Het principe van het verdelen in lagen: gegevenstoegang, bedrijf en web.
- Rol van Spring, Hibernate, Jersey en AngularJS.
- Extra bibliotheken: logging met slf4j en logback, unit tests met JUnit, mocks.
- Het principe van de "Single Page Application".
2
Werkomgeving
- De Eclipse-omgeving.
- De plug-in Spring Tool Suite (STS).
- Maven afhankelijkheden.
Praktisch werk
De IDE en de Spring Tool Suite plug-in installeren.
3
Een meerlaagse architectuur opzetten met Spring
- Layering, de POJO-benadering.
- Staatsbeheer.
- Afhankelijkheidsinjectie.
- Onderscheppingen.
- Geplande invocaties.
- Toezicht met JMX.
- Containerconfiguratie (annotaties, via XML).
- Managed beans testen.
Praktisch werk
Implementatie van een meerlaagse applicatie, met Spring als fabriek om onze objecten te beheren (levenscyclus, injectie van afhankelijkheden, enz.).
4
Gegevenstoegang met Hibernate en JPA
- Relationele object mapping (XML, annotaties).
- Lui laden.
- De EntityManagerFactory API en EntityManager.
- JPA-QL, API-criteria, MetaModel, EntityGraph.
- Transactiebeheer, de koppeling tussen JPA en JTA.
Praktisch werk
Het opzetten van persistente entiteiten. Spring beheer van de JPA entityManager cyclus, gebruik van Spring's transactionele monitor en JTA annotaties.
5
Webdiensten REST, API JAX-RS vs Spring MVC
- Wat is een URI?
- HTTP-herinneringen: werkwoorden (GET, PUT...), returns, contentType, headers, cachebeheer.
- CORS: Cross Origin Shared Resource.
- HATEOAS.
- Implementatie van REST-diensten (JAX-RS en Jersey).
- Vergelijking met Spring MVC.
Praktisch werk
Ontwikkeling van een REST API die bronnen van het vorige jaar weergeeft.
6
HTML/JavaScript-client met AngularJS
- Het voordeel van HMI aan de klantzijde.
- De valkuil van DOM-manipulatie.
- De door AngularJS voorgestelde aanpak.
- Isomorf JavaScript voor rendering aan serverzijde.
Praktisch werk
Creatie van een HTML/JavaScript-client met AngularJS met behulp van de eerder ontwikkelde REST API.