JAT - Java Technology
Materials and information for subject Java Technology. Subject is focused on extension of students knoledges and skills in JavaSE and JavaEE platform.
During the semester can be information modified.
Students have to develop graded task on each computer lab. Students have to colect at least half of total sum of points to be able obtain credits.
Downloads
- JAT - lecturesEN.pdf (PDF, 3094 KB, Dec 3, 2021)
- JAT - lectures EN.odp (ODP, 4052 KB, Oct 20, 2022)
- jat2018EmptyExamTest.zip (ZIP, 34 KB, Jan 3, 2019)
- pokus.zip (ZIP, 13 KB, Oct 1, 2024)
- JAT - přednášky.pdf (PDF, 3387 KB, Jun 5, 2023)
- VEA - přednášky_v3-pro-JAT.odp (ODP, 8749 KB, Nov 19, 2024)
- JAT_prednasky.odp (ODP, 7531 KB, Nov 19, 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.
Conditions for obtaining a classified credit
- Passing the final test.
- Accumulate the minimum number of points per exercise.
- The project will be rated at a maximum of 40, at least 20.
- Exercises in weeks 2 through 12 will be divided into 36 points, with a maximum of 30 points and a minimum of 15 points
- The final test will be evaluated at a maximum of 30 minimum to be obtained 15.
- The total sum of points for the workout, the project and the final test must be at least 51 points.
Assignment of the semester project
Students will submit their projects at the latest on the week before the week and will be uploaded to Edison.
Web Information System meeting the following conditions:
Web layer using JSF
Access DB using JPA
Session beans can be in the JavaEE server's container web
Database tables will represent mapping of at least 4 classes. There will be at least one 1-N bond between the entity classes and there will be a childhood that will be mapped to the DB tables.
The system will include a public and non-public part (available after login to the system)
The system uses css styles to protect the application
The GUI application will include components like ComboBox (SelectOne or SelectMany)
Converters for object conversion (javax.faces.convert.Converter)
Links between objects will be set in the GUI using components and objects, not by entering an object ID into a text box.
Final exam
A final test for day-time students will take place during the week-end exercises. This will be a computer programming test, where students will solve short programmer tasks. Each student has only one attempt to complete this test.
Hibernate Bytecode Enhancement using maven plugin
<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>