# Übung Componentware – Aufgabenblatt zu Kapitel 6

## Aufgaben

1. Worum handelt es sich bei einer Transaktion?

2. Worin besteht der Unterschied zwischen Container Managed Transactions und Bean Managed Transactions?

3. Beschreiben Sie den generellen Ablauf einer Transaktion im Application Server bei vom Container verwalteten Transaktionen.

4. Welche Gründe gibt es für einen Abbruch einer Transaktion? Gehen Sie dabei insbesondere auch auf unterschiedliche Typen von Exceptions ein.

5. Worum handelt es sich bei Session Synchronisierung? Welche Methoden bzw. Annotationen umfasst die Session Synchronisierung?

6. Wie können Transaktionen von der Bean verwaltetet werden?

7. Wie können Transaktionen durch den Client verwaltetet werden?

8. Betrachten Sie das Programm in den Projekten `Componentware_Kapitel6_Transaktionen_Uebung` und `Componentware_Kapitel6_Transaktionen_Uebung_TestClient`.
   Wo finden Transaktionsaufrufe statt? An welcher Stelle findet ein Rollback statt und wo endet eine Transaktion mit einem commit?

9. Beschreiben Sie den Aufbau der Startklasse einer Spring Boot Applikation, also die Klasse, die die `main`-Methode enthält, für den einfachsten Fall.

10. Wie kann in Spring Boot eine Shell-Applikation erstellt werden?

11. Gegeben Sie die folgende Klasse:
    ```java
    @Component
    public class Hello {
        public String sayHello() {
            return "Hello World!";
        }
    }
    ```
    Wie kann ein Objekt der Klasse `Hello` in ein Attribut einer anderen Klasse injiziert werden?

12. Welchen Vorteil bieten Spring Repositories gegenüber der Verwendung von JPA?

13. Erstellen Sie mit Spring Boot einen Web Service, der eine Methode bereitstellt, die zwei Zahlen als Path-Parameter in der URL `localhost:8080/math/sum/<zahl1>/<zahl2>` entgegennimmt. Die Methode soll diese beiden Zahlen addieren und die Summe als Ergebnis zurückliefern.
    Testen Sie den Service über einen Web Browser.
