CDI 1.1 : @Vetoed アノテーション of 1/45

2014年1月29日 at 1:32 PM

昨日、「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 を触った事のある方ならばより理解がしやすいかと想定します。

広告

Entry filed under: 未分類. Tags: .

Java EE 7 の新機能を 45 分で 45 個ご紹介 Java EE 7 の新機能紹介と Java のイベントのご紹介


Java Champion & Evangelist

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2014年1月
« 12月   2月 »
 12345
6789101112
13141516171819
20212223242526
2728293031  

カテゴリー

Twitter

  • RT @backpaper0: てらださんには「テラダヨシオガンバル」って書かれたTシャツ着てほしい 4 hours ago
  • RT @sandayuu: 明日 DevOpsDays Tokyoなのですが、MR. Be Lazyの@DrewRobbins がマイクロソフトブースき来てくれることになりました!こら、質問するチャンスですよ! #DevOpsJP 9 hours ago
  • RT @navitime_tech: JJUG CCC 2017 Spring に日本マイクロソフト寺田様(@yoshioterada)と共同で登壇します。LUISを採用した理由、これからのAIやbot活用の可能性について話す予定です。https://t.co/wjRUbaNw… 3 days ago
  • RT @JJUG: JJUG CCC 2017 Spring(5/20)まで1ヶ月!コンテンツが出そろってきました。タイムテーブルをチェックして、行きたいコンテンツを確認してください。皆様のご参加をお待ちしております! buff.ly/2pGUNlu #jjug3 days ago
  • RT @vrize_inc: マイクロソフトのテクニカルエバンジェリストの方にhackfestを開催していただき、技術的な課題を一緒に解決しました。本社ブログに取り上げていただいてます!! blogs.technet.microsoft.com/livedevopsinja… 3 days ago

clustermap

ブログ統計情報

  • 944,169 hits

Feeds


%d人のブロガーが「いいね」をつけました。