Archive for 1月, 2014
CDI 1.1 : @Vetoed アノテーション of 1/45
昨日、「Java EE 7 の新機能を 45 分で 45 個ご紹介」のエントリを書きましたが、具体的にどのような内容なのか?ご興味ある方もいらっしゃるかと思いますので、セッション内容の一例をご紹介します。
CDI 1.1 : @Vetoed アノテーション
CDI 1.1 から特定のクラスだけをインジェクション対象からはずし、インジェクションできないようにする事ができるようになりました。インジェクション対象からはずすためには、該当のクラスに対して、@Vetoed アノーテションを付加します。
ご参考:CDI 1.0 までは XML で除外対象の設定を行ってました。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"> <scan> <exclude name="com.acme.rest.*" /> <exclude name="com.acme.faces.**"> <if-class-not-available name="javax.faces.context.FacesContext"/> </exclude> </scan> </beans>
@Vetoed アノテーションの利用例として、JPA のエンティティ・クラスに対して付加する事が有効です。このアノテーションを JPA のエンティティに付加する事で、CDI のライフサイクルと JPA のライフサイクルの競合を防ぎより安全に実装することができます。下記の例では JPA のエンティティを CDI では管理できないようにし JPA の EntitiManager によってのみ管理する例を示します。
@Entity @Vetoed public class Person { @Column private String fName; @Column private String lName; }
もしくは、package-info.java を作成し、該当パッケージに含まれるクラス全てをインジェクション対象から外す事も可能です。
@Vetoed package com.yoshio3.noninjectable ; import javax.enterprise.inject.Vetoed ;
このように、本セッションは Java EE 7 で追加された新機能をいち早くご理解されたい方に有用なセッションです。前提としてコンフィグレーションの内容やソースコードを交えての説明ですので Java のコードが理解できる方の参加が必須で、金魚本や過去のセミナーなどから Java EE 5/6 を触った事のある方ならばより理解がしやすいかと想定します。
Java EE 7 の新機能を 45 分で 45 個ご紹介
皆様、いつも大変お世話になっております。
この度、Developers Summit 2014 (通称:デブサミ) でJava EE 7 の新機能をご紹介するセッションを持たせていただき、登壇する事になりましたのでご案内致します。
2014/2/14(金) 16:20~17:05
「45 new features of Java EE 7 in 45 minutes」
Java EE 7 は2013年6月に正式にリリースされ、2014年以降Java EE 7 に準拠したアプリケーションが続々と登場する事が予想されます。Java EE 7 は、WebSocket,JSON, Batch, Concurrencyの新機能が追 加された他、既存のAPIにも様々な改良が施されています。エンタープライズJavaの今後、とても重要になるJava EE 7の新機能を45分で45 の新機能を紹介します。
※ このセッションは、本場 JavaOne San Francisco 2013 で人気があったセッションを日本で初めて実現する物で、コンテンツは今回、日本の開発者の皆様向けに作り直して提供予定です。また、Java EE 5,6 についてある程度勉強して頂いている方が、Java EE 7 への差分をまとめて理解をする事ができるセッションです。ソースコードを交えながらご紹介いたしますので、是非ご都合のつく方はお越しください。