JSR299 Java Contexts and Dependency Injectionについて
303と311は何度か目を通しましたが299のWebBeansはJavaOne以降ノーチェックでした。
JSR303: Bean Validator
JSR311: JAX-RS: The JavaTM API for RESTful Web Services
http://www.jcp.org/en/jsr/detail?id=311
WebBeansから名前が変わりJava Contexts and Dependency Injectionですか。
JSR299: Java Contexts and Dependency InjectionのDraftより
javaxパッケージに分けられたアノテーション一覧(interfaceは省略)
javax.annotation
@NonBinding @Named @Stereotype
javax.interceptor
@Interceptor @InterceptorBindingType
javax.decorator
@Decorator @Decorates
javax.context
@ScopeType @ApplicationScoped @RequestScoped @SessionScoped @ConversationScoped @Dependent
javax.inject
@BindingType @DeploymentType @Produces @Disposes @Specializes @Realizes @Initializer @New @Current @Production @Standard @Obtains
javax.inject.manager
@Initialized @Deployed
javax.event
@Observes @IfExists @Asynchronously @AfterTransactionCompletion @AfterTransactionFailure @AfterTransactionSuccess @BeforeTransactionCompletion @Fires
5章のLokkup, dependency injection and EL resolutionと7章のEventsは、興味深いものもありましたが
アノテーションが多いなという印象。
9章のXML based metadataでは、アノテーションベースのBean定義の代替手段として
beans.xmlファイルで定義が出来るようです。
<myapp:MockAsynchronousCreditCardPaymentProcessor> <myapp:Asynchronous/> <myapp:PayBy>CREDIT_CARD</myapp:PayBy> <SessionScoped/> <myfwk:Mock/> <myfwk:Service transactional="true"/> <Named>asyncCreditCardPaymentProcessor</Named> <myapp:synchronousProcessor> <myapp:PaymentProcessor> <myapp:Synchronous/> <myapp:PayBy>CREDIT_CARD</myapp:PayBy> </myapp:PaymentProcessor> <myapp:synchronousProcessor> <myapp:init> <Initializer/> <myfwk:SystemConfig/> </myapp:init> </myapp:MockAsynchronousCreditCardPaymentProcessor>
↑この定義は↓と同等
@Asynchronous @PayBy(CREDIT_CARD) @SessionScoped @Mock @Service(transactional=true) @Named("asyncCreditCardPaymentProcessor") class MockAsynchronousCreditCardPaymentProcessor { @Synchronous @PayBy(CREDIT_CARD) PaymentProcessor synchronousProcessor; @Initializer void init(SystemConfig config) { ... } ... }
ちょっと複雑か...
こちらでも言及されてますが、javax.injectときたかーという印象。
また、大幅な修正が入って精査されるのではないかと思っています。
時間のある人は ここからダウンロードして見てみてください。