SeamFramework.orgCommunity Documentation
Web Bean的第二个宗旨是强类型。Web Bean有关依赖,拦截器和装饰器的信息以及事件生产者对应的事件消费者的信息都包含在类型安全的Java构件中,可以被编译器验证。
在Web Bean代码中,你不会看到基于字符串的标识符。这不是因为这个框架使用智能默认规则 也叫"按惯例配置" 将它们隐藏起来,这是因为从开始就没有任何字符串!
这种方法的显而易见的好处是任何IDE都可以提供自动完成,验证和重构而无需任何特殊工具。除此之外,还有第二个,不是那么明显的好处。它能够让你考虑识别对象,事件或者拦截器的时候使用注释,而不是名字,这样你将可以提升你的代码的语义水平。
Web Beans能够鼓励你为概念建模,开发注释。例如:
@Asynchronous
,
@Mock
,
@Secure
or
@Updated
,
而不是使用复合名字,像:
asyncPaymentProcessor
,
mockPaymentProcessor
,
SecurityInterceptor
or
DocumentUpdatedEvent
.
注释可以重用。它们能够描述系统不同部分的通用特征。它们能够帮助我们分类和理解我们的代码。它们能够以通用的方式为我们处理共同的关注点。它们能够让我们的代码具有更高的可读性,更加容易被理解。
Web Beans的模板是这种思想的延伸。一个模板为我们应用体系中的一个通用的角色建模。它将一个角色的各种不同的属性,包括范围,拦截器绑定,部署类型,等等封装到一个单一的可重用的包中。
甚至Web Bean的XML元数据也是强类型的!对于XML没有编译器,Web Bean充分利用了XML模式去验证XML中出现的Java类型和属性。这种方式让XML更加具有可读性,就像注释让我们的Java代码更加具有可读性一样。
我们现在可以接触Web Bean中更加高级的特性了。要记住这些特性能够让我们的代码不仅更容易验证,也更容易理解。大部分时间,你根本不需要这些特性,但是如果你能聪明地运用它们的话,你将充分体会到它们的强大。