JAT - Java Technologie
Seznámení studentů s technologiemi obsaženími v platformách JavaSE a Jakarta EE a dalšími moderními technologiemi pro jazyk Java. Po absolvování předmětu bude student schopen využít základní API platformy JavaSE a Jakarta EE. Použít standardní přístup při vývoji softwarového díla nad platformou Jakarta EE a spring Boot. Implementovat aplikaci s využitím technologie Jakarta EE, Spring Boot.
Ke stažení
- JAT - lecturesEN.pdf (PDF, 3094 KB, 3.12.2021)
- JAT - lectures EN.odp (ODP, 4052 KB, 20.10.2022)
- jat2018EmptyExamTest.zip (ZIP, 34 KB, 3.1.2019)
- pokus.zip (ZIP, 13 KB, 1.10.2024)
- JAT - přednášky.pdf (PDF, 3387 KB, 5.6.2023)
- VEA - přednášky_v3-pro-JAT.odp (ODP, 8749 KB, 19.11.2024)
- JAT_prednasky.odp (ODP, 7531 KB, 19.11.2024)
Požadavky na software
Vpředmětu budeme využívat tento software:
- Java 21
- Eclipse IDE for Enterprise Java and Web Developers 2024-09 (instalátor, předpřipraveny balíček) a pluginy
- nebo
- IntelliJ IDEA Community Edition 2024.2.* a pluginy
- SonarLint plugin
- ...
- Wildfly 33
Přednášky
JAT přednášky (JAT přednášky PDF)
- Úvod. Obsah předmětu, požadavky k zápočtu. Témata projektů, požadované řešení. Literatura a další zdroje informací.
- JavaBeans - základní vlastnosti, rozhraní, zprávy. Event-Listener model.
- Architektury informačních systémů. Vícevrstvé architektury. Prezentační, aplikační a datová vrstva v Jakarta EE.
- Jakarta EE - aplikační mode, principy, architektura.
- Java Aplikační servery.
- Struktura webové aplikace. Přehled jazyků a technologie pro vývoj ve webovém prostředí.
- Java Servlet, zpracování požadavku, možnosti odpovědi. Filtry.
- Rámec Spring a Spring Boot.
- Java CDI.
- Jakarta Faces (dříve JSF) – principy, použití, komponenty, CDI, šablony a kompozice, konverze, validace, navigace.
- Persistence objektů. Java Persistence API a dotazovací jazyk QL. Rozšířené možnosti.
- JTA - transakce v jazyce JAVA (Java Transaction).
- JMS – předávání zpráv, Message-Driven Bean.
Podmínky pro udělení klasifikovaného zápočtu
- Odevzdání projetu v termínu.
- Absolvování závěrečného testu.
- Nasbírání minimálního počtu bodů na cvičení.
- Projekt bude hodnocen maximálně 60, minimálně je nutno získat 30.
- Závěrečný test bude hodnocen maximálně 40 minimálně je nutno získat 20.
- Celkový součet bodů za cvičení, projekt a závěrečný test musí být minimálně 51 bodů.
Zadání semestrálního projektu
Studenti denního studia budou projekty odevzdávat nejpozději na cvičeních týden před zápočtovým týdnem a bude nahrán do systému Edison.
Studenti Kombinovaného studia budou projekty odevzdávat elektronicky přes systém edison nejpozději do konce roku (kombinovaní). Poté je nutné individuálně domluvit osobní předvedení projektu.
Webový informační systém splňující následující podmínky:
- Web vrstva s využitím Jakarta Faces (dříve JSF)
- Přístup k DB pomocí JPA
- Session bean mohou být ve web containeru JavaEE serveru
- Databázové tabulky budou představova mapování minimálně 4 tříd. Mezi entitními třídamy bude existovat minimálně jedna vazba 1-N a bude existovat dětičnost, která bude namapována do DB tabulek.
- Systém bude obsahovat veřejnou a neveřejnou část (dostupnou po přihlášení do systému)
- Systém použije css styly pro ohezčení aplikace
- GUI aplikace bude obsahovat komponenty jako ComboBox (SelectOne nebo SelectMany)
- konvertory pro konverzi objektů (javax.faces.convert.Converter)
- Vazby mezi objekty budou v GUI nastavovány pomocí komponent a objektů ne přes zadání ID objektu do textového pole.
Závěrečný test
Závěrečný test pro studenty denního studia bude probíhat na cvičeních v zápočtovém týdnu. Bude se jednat o test v programování na počítači, kdy studenti budou řešit krátké programátorské úlohy. Každý student má pouze jeden pokus na složení tohoto testu.
Kombinovaní studenti nebudou psát závěrečný test.
Hibernate Bytecode Enhancement pomocí maven pluginu
<build>
...
<plugins>
...
<plugin>
<!--
https://mvnrepository.com/artifact/org.hibernate.orm.tooling/hibernate-enhance-maven-plugin -->
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>6.2.6.Final</version>
<executions>
<execution>
<configuration>
<enableDirtyTracking>true</enableDirtyTracking>
<enableLazyInitialization>true</enableLazyInitialization>
</configuration>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>