Uživatelská náročnost
Pro koho je kurz určen
Kurz je určen vývojářům a architektům, kteří již ovládají základní tvorbu webových aplikací a chtějí vytvářet rozsáhlejší aplikace nad Java EE, raději bez použití EJB.
Co Vás naučíme
- Poznat výhody a nevýhody Spring Frameworku proti EJB, Google Guice a dalším
- Zlepšit design programů pomocí Dependency Injection (DI), Aspect oriented programming (AOP)
- Používat XML a anotace (@Autowired, @Service, ...) pro definování závislostí komponent
- Používat JDBC Template a JPA Template pro přístup do databáze
- Deklarativně řídit transakce pomocí @Transactional
- Zapojit Spring do webové aplikace pomocí Servletů nebo Spring MVC
Požadované vstupní znalosti
Je vhodné mít zkušenosti s webovými aplikacemi (Servlety a JSP) a dále přehled o SQL a XML.
Metody výuky
Odborný výklad s praktickými ukázkami, cvičení na počítačích
Studijní materiály
Tištěné prezentace probírané látky
Osnova kurzu
Inversion of Control, Dependency injection
- Kontejner pro komponenty (beany)
- Definice závislostí (Dependency injection)
- ApplicationContext
- ResourceLoader, MessageSource
- Inicializace komponent, @PostConstruct
- @Autowired, @Component
- Spring XML namespaces, NamespaceHandler
Databáze a transakce - JDBC
- Spring a podpora javax.sql.DataSource
- DAO komponenty
- JDBC a JDBC Template
- Řízení transakcí pomocí TransactionProxyFactoryBean
- Deklarativní řízení transakcí
- Java Transaction API
Databáze - JPA a Hibernate
- Prvky JPA
- Anotace @Entity, @Id, ...
- Konfigurace persistence.xml, orm.xml
- Java API - EntityManager
- PersistenceContext
- Vztahy mezi entitami
- Lazy loading
- Transakce a EntityManager, LocalContainerEntityManagerFactoryBean
Integrace s webovými knihovnami
- Webový server, balík WAR
- Servlety a JSP
- Kořenový WebApplicationContext a ServletContext
Spring MVC
- Základní principy
- @Controller, @RequestMapping
- View a sestavení výsledné webové stránky
- ViewResolver
- Možnosti Spring MVC v praxi
- Validace vstupních formulářů (JSR-303 - Bean Validation)
Spring MVC - pokročilá témata (volitelně)
- Architektura
- HandlerMapping, HandlerAdapter
- Internacionalizace (I18N)
- Upload souborů
Alternativní webové technologie (volitelně)
- Použití FreeMarkeru místo JSP
- Propojení stránek pomocí Spring Web Flow
JavaServer Faces
- ManagedBean
- Konfigurace - faces-config.xml
- Definice view - Facelet
- Fáze zpracování požadavku
- Komponenty na stránce
- Integrace se Spring Frameworkem (EL Resolver)
- DataTable
- CRUD a pokročilejší techniky (REST, méně obvyklé události)
Pokročilé techniky s kontejnerem (volitelně)
- Tovární metody, tovární třídy
- Bean scope (singleton, prototype)
- BeanPostProcessor, BeanFactoryPostProcessor
- Lazy inicializace beanů
Aspektově orientované programování - AOP (volitelně)
- Koncepty AOP
- Jednoduchý aspekt
- Možnosti jazyka pointcutů
- Definice pokročilých aspektů