SeamFramework.orgCommunity Documentation
Il secondo tema saliente di Web Beans è lo tipizzazione forte (strong typing). Le informazioni riguardanti dipendenze, interceptor e decorator di un Web Bean, e le informazioni sui i consumatori relativi ad un produttore di eventi, sono contenute in costrutti Java sicuri rispetto ai tipi (typesafe) che possono essere validati dal compilatore.
Non si vedono identificatori di tipo stringa nel codice basato su Web Beans, non perché il framework li nasconde usando regole intelligenti nell'assegnamento dei valori di default la cosiddetta "configurazione per convenzione (configuration by convention)" ma semplicemente perché non ci sono stringhe, tanto per cominciare!
L'ovvio beneficio di questo approccio è che qualunque IDE può fornire autocompletamento, validazione e refactoring senza che sia necessario realizzare dei tool appositi. Ma c'è un secondo beneficio meno immediatamente ovvio. Si scopre che quando si incomincia a pensare di identificare oggetti, eventi o interceptor usando annotazioni invece di nomi, si ha l'opportunità di elevare il livello semantico del proprio codice.
Web Beans incoraggia a sviluppare annotazioni che modellano concetti, per esempio,
@Asynchronous
,
@Mock
,
@Secure
or
@Secure
or
invece di usare nomi composti come
asyncPaymentProcessor
,
mockPaymentProcessor
,
SecurityInterceptor
or
DocumentUpdatedEvent
.
Le annotazioni sono riutilizzabili. Aiutano a descrivere caratteristiche comuni di parti diverse del sistema. Ci aiutano a categorizzare e comprendere il nostro stesso codice. Ci aiutano ad affrontare i concern comuni in un modo comune. Rendono il nostro codice più elegante e comprensibile.
Gli stereotipi (stereotypes) di Web Beans fanno fare un ulteriore passo in avanti a questa idea. Uno stereotipo descrive un ruolo comune nell'architettura di un'applicazione. Incapsula in un unico pacchetto riutilizzabile varie proprietà del ruolo stesso, inclusi lo scope, gli interceptor bindings, il tipo di deployment, etc, .
Persino i metadati XML di Web Beans sono fortemente tipizzati (strongly typed)! Non esistendo un compilatore XML, Web Beans si basa sugli schemi XML per validare i tipi Java e gli attributi che compaiono nell'XML. Questo approccio finisce col rendere il codice XML più informato, proprio come le annotazioni rendono il codice Java + informato.
Ora siamo pronti ad incontrare alcune caratteristiche più avanzate di Web Beans. Tenete a mente che tali caratteristiche esistono sia per rendere il nostro codice più facile da validare che per renderlo più comprensibile. La maggior parte delle volte non è necessario usare tali carattestiche, ma, se usate con accortezza, si arriverà ad apprezzerne l'efficacia.