© Excellent backgrounds/Shutterstock.com
Java Magazin
Was man mit Java EE machen kann, aber nicht sollte

Mehr geht immer


Heute erlauben Konventionen einen vollständigen Verzicht auf XML, wenige Annotationen verdrängen Interfaces, die Unabhängigkeit des Java-EE-Frameworks ist ohne jeglichen Einsatz von Patterns out of the box gegeben. Manche Architekten fühlen sich ein wenig vernachlässigt, denn meist passt die Architektur vollständig auf eine Folie. Ihre Sorgen sind jedoch unbegründet. Mit ein wenig Kreativität kann man immer noch komplizierte ­Anwendungen für triviale Anwendungsfälle mit Java 8 und Java EE entwickeln.

Video: Java 8 + Java EE 7 – Feedback aus den Projekten

Fangen wir beim Build-System für unsere Gästebuchanwendung an. Leider ist Maven resistent gegen jegliche Kreativität. Auch komplexe Projekte lassen sich mit der Konfiguration aus Listing 1 bauen. Lediglich Test-Scope-Abhängigkeiten werden in den Projekten benötigt. Es müssen keine Plug-ins oder Profile konfiguriert werden. WARs sind die neuen EARs. In javaee-api sind bereits sämtliche Compile-Scope-Abhängigkeiten enthalten. Ein super POM zur Pflege einer einzigen provided-Abhängigkeit mit einer festen Version und wenigen Testabhängigkeiten wird nicht benötigt.

Listing 1: „pom.xml“ für Java-EE-7-Projekte

<project> <modelVersion>4.0.0</modelVersion> <groupId>com.airhacks</groupId> <artifactId>guestbook</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>guestbook</finalName> </build> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <failOnMissingWebXml>false</failOnMissingWebXml> </properties> </project>

Webframeworks 2.0

Als ich im Jahr 2002 die Artikelserie „J2EE-Patterns“ für das Java Magazin geschrieben habe, gehörte es auch noch zum guten Ton, ein Projekt mit der Entwicklung eines kleinen Webframeworks zu starten. Aus Webframeworks wurden Services. Die folgende Klassendefinition aktiviert und konfiguriert einen HTTP-Endpunkt mit einer JAX-RS-2.x-Konfiguration:

@ApplicationPath("resources") public class JAXRSConfiguration extends Application {}

web.xml wird somit nur noch in Ausnahmefällen benötigt.

Die Persistenz

Ein annotiertes POJO übernimmt sowohl die Persistierung als auch die JSON- und XML-Serialisierung der Einträge. Sogar die geschätzten Getter/Setter sind optional (Listing 2).

Listing 2: Die Persistenz der Anwendung

@En...
Java Magazin
Was man mit Java EE machen kann, aber nicht sollte

Mehr geht immer

Heute erlauben Konventionen einen vollständigen Verzicht auf XML, wenige Annotationen verdrängen Interfaces, die Unabhängigkeit des Java-EE-Frameworks ist ohne jeglichen Einsatz von Patterns out of the box gegeben. Manche Architekten fühlen sich ein wenig vernachlässigt, denn meist passt die Architektur vollständig auf eine Folie. Ihre Sorgen sind jedoch unbegründet. Mit ein wenig Kreativität kann man immer noch komplizierte Anwendungen für triviale Anwendungsfälle mit Java 8 und Java EE entwickeln.

Adam Bien


Heute erlauben Konventionen einen vollständigen Verzicht auf XML, wenige Annotationen verdrängen Interfaces, die Unabhängigkeit des Java-EE-Frameworks ist ohne jeglichen Einsatz von Patterns out of the box gegeben. Manche Architekten fühlen sich ein wenig vernachlässigt, denn meist passt die Architektur vollständig auf eine Folie. Ihre Sorgen sind jedoch unbegründet. Mit ein wenig Kreativität kann man immer noch komplizierte ­Anwendungen für triviale Anwendungsfälle mit Java 8 und Java EE entwickeln.

Video: Java 8 + Java EE 7 – Feedback aus den Projekten

Fangen wir beim Build-System für unsere Gästebuchanwendung an. Leider ist Maven resistent gegen jegliche Kreativität. Auch komplexe Projekte lassen sich mit der Konfiguration aus Listing 1 bauen. Lediglich Test-Scope-Abhängigkeiten werden in den Projekten benötigt. Es müssen keine Plug-ins oder Profile konfiguriert werden. WARs sind die neuen EARs. In javaee-api sind bereits sämtliche Compile-Scope-Abhängigkeiten enthalten. Ein super POM zur Pflege einer einzigen provided-Abhängigkeit mit einer festen Version und wenigen Testabhängigkeiten wird nicht benötigt.

Listing 1: „pom.xml“ für Java-EE-7-Projekte

<project> <modelVersion>4.0.0</modelVersion> <groupId>com.airhacks</groupId> <artifactId>guestbook</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>guestbook</finalName> </build> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <failOnMissingWebXml>false</failOnMissingWebXml> </properties> </project>

Webframeworks 2.0

Als ich im Jahr 2002 die Artikelserie „J2EE-Patterns“ für das Java Magazin geschrieben habe, gehörte es auch noch zum guten Ton, ein Projekt mit der Entwicklung eines kleinen Webframeworks zu starten. Aus Webframeworks wurden Services. Die folgende Klassendefinition aktiviert und konfiguriert einen HTTP-Endpunkt mit einer JAX-RS-2.x-Konfiguration:

@ApplicationPath("resources") public class JAXRSConfiguration extends Application {}

web.xml wird somit nur noch in Ausnahmefällen benötigt.

Die Persistenz

Ein annotiertes POJO übernimmt sowohl die Persistierung als auch die JSON- und XML-Serialisierung der Einträge. Sogar die geschätzten Getter/Setter sind optional (Listing 2).

Listing 2: Die Persistenz der Anwendung

@En...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang