SeamFramework.orgCommunity Documentation
Das zweite wichtige Thema von Web Beans ist starke Typisierung (sog. "strong Typing"). Die Informationen zu Abhängigkeiten, Interzeptoren und Dekoratoren eines Web Beans und die Informationen zu Ereigniskonsumenten (Event Consumers) für einen Ereignis-Producer sind in typensicheren Java-Konstrukten enthalten, die vom Kompilierer (Compiler) validiert werden können.
Sie sehen keine String-basierten Bezeichner in Web Beans Code; dies ist nicht der Fall weil das Framework diese unter Verwendung irgendwelcher Defaulting-Regeln vor Ihnen verbirgt; sogenannte "Konfiguration nach Konvention" sondern weil einfach keine Strings existieren!
Der offensichtliche Vorteil dieser Vorgehensweise ist, dass jede IDE Auto-Completion, Validierung und Refaktorierung ohne die Notwendigkeit spezieller Tools bereitstellen kann. Es existiert jedoch noch ein weiterer, nicht sofort ersichtlicher Vorteil. Es stellt sich nämlich heraus, dass Sie - wenn Sie über die Identifizierung von Objekten, Ereignissen oder Interzeptoren via Annotationen statt Namen nachdenken - Sie Gelegenheit haben, die semantische Ebene Ihres Code anzuheben.
Web Beans soll dazu ermutigen Annotationen zu entwickeln, die Konzepte formen, etwa
@Asynchronous
,
@Mock
,
@Secure
oder
@Updated
,
statt Namen wie Assoziationsbegriffe wie
asyncPaymentProcessor
,
mockPaymentProcessor
,
SecurityInterceptor
oder
DocumentUpdatedEvent
zu verwenden.
Die Annotationen sind wiederverwendbar. Sie helfen bei der Beschreibung gängiger Eigenschaften verschiedener Teile des Systems. Sie helfen uns bei der Kategorisierung und dem Verständnis unseres Codes. Sie helfen uns dabei auf gängige Weise mit gängigen Problemen umzugehen. Sie machen unseren Code leichter lesbar und einfacher zu verstehen.
Web Beans Stereotypen erweitern diese Idee um einen Schritt. Ein Stereotyp formt eine gängige Rolle in Ihrer Anwendungsarchitektur. Es enthält verschiedene Eigenschaften der Rolle, einschließlich deren Geltungsbereich, Interzeptorbindungen, Deployment-Typ usw. in einem einzelnen, wiederverwendbaren Paket.
Sogar Web Beans XML Metadaten sind stark typisiert! Es gibt keinen Kompilierer für XML, daher nutzen Web Beans XML-Schemas zur Validierung der in XML vorkommenden Java-Typen und Attribute. Diese Vorgehensweise führt zur besseren Lesbarkeit der XML, ebenso wie Annotationen unseren Java Code einfacher lesbar machten.
Wir können jetzt einige fortgeschrittenere Features von Web Beans kennenlernen. Vergessen Sie nicht, dass diese Features unseren Code sowohl einfacher zu validieren als auch leserlicher machen sollen. Meist werden Sie diese Features nicht verwenden müssen, wenn Sie dies aber auf kluge Weise tun, so werden Sie deren Vorteile schnell zu schätzen wissen.