Monster-EJB: Rechnung anlegen
Eine zentrale Stateless Session Bean mischt Validierung, JPA, JDBC, SOAP, JMS, Audit, Rabatte, Fehlerbehandlung und Transaktionssteuerung in einer Methode.
Dieses Kapitel zeigt reale Legacy-Schnittmuster: Monster-EJB, PL/SQL-Regeln, JMS-Duplikate, fette UI-Controller und Batch-Wiederanlauf. Jedes Beispiel enthält Ausgangscode, Zielcode, Zwischenabsicherung, Entwurfsmuster und fachliche Wirkung.
Eine zentrale Stateless Session Bean mischt Validierung, JPA, JDBC, SOAP, JMS, Audit, Rabatte, Fehlerbehandlung und Transaktionssteuerung in einer Methode.
Ein PL/SQL-Package entscheidet Mahnstufe, Gebühren, Sperren und Historie in einem datenbanknahen Block. Das Refactoring extrahiert Regeln kontrolliert in einen Domain Service.
Ein Message Driven Bean verarbeitet Rechnungsereignisse nicht idempotent. Nach dem Refactoring gibt es Idempotency-Key, Retry-Klassifikation und Outbox/Inbox-Nachweis.
Eine Action-Klasse enthält Session-State, Validierung, Berechtigungen, EJB-Aufruf und JSP-Modellaufbereitung. Das Refactoring trennt Controller, Form Validator, Presenter und Use Case.
Ein Shell/JCL-ähnlicher Nachtjob verarbeitet Dateien, Datenbankupdates und Reports in einem Lauf. Nach dem Refactoring gibt es Steps, Kontrolltabelle, Checkpoints und klare Wiederanlaufpunkte.