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.

Odevzdání a Obhajoba projektu

  • Termín odevzdání projektu je do neděle 5.1.2025.
  • Projekt nahrejte do systému edison (edison.vsb.cz) v ZIP souboru limit 15M. Nahrání je možné v sekci Studium -> Seminární práce a tam už je vidět předmět a úkol.
  • Obhajoba/předvedení proběhne osobně 13.1.2025 od 13:00 Je třeba se na ni přihlásit v systému https://ees.cs.vsb.cz/exams/1037/blocks , dostanete tak přidělený přibližný čas obhajoby a nemusíte čekat celý den.

Požadavky na software

Vpředmětu budeme využívat tento software:

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í.
  • Na cvičení lze získat maximálně 30, minimálně je nutno získat 15
  • Projekt bude hodnocen maximálně 40, minimálně je nutno získat 20.
  • Závěrečný test bude hodnocen maximálně 30 minimálně je nutno získat 15.
  • 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) nebo spring.io
  • Přístup k DB pomocí JPA
  • Využítí CDI nebo Autowire
  • Databázové tabulky budou představova mapování minimálně 5 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 (není nutno přehánět, jen základní stylování)
  • GUI aplikace bude obsahovat komponenty jako ComboBox (SelectOne nebo SelectMany nebo využití spring.io)
  • konvertory pro konverzi objektů (javax.faces.convert.Converter). Platí pro Jakarta Faces.
  • 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>