Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

プリミティブ型もCDIでInject

悲しいことに最近仕事でコードが書けなくなってきてしまい(苦手な上流へ…)、あまりネタがないのですが、プライベートな時間で以下のJava EE7本を細かく読み始めました。

Beginning Java EE 7 (Expert Voice in Java)
Antonio Goncalves
Apress (2013-06-26)
売り上げランキング: 4,378

このBeginning Java EE 7は名前からわかる方もいると思いますが、金魚本のJava EE 7版となっていて、先頭の章でCDIがドカンと入ってていい感じです。

しかし本を読んでいると、CDIは細かい所で結構知らないことあるなぁと。

そんなわけで個人的なメモ。

プリミティブ型やStringもCDIのProducersを利用してInjectできるんですね。へー。
地味に知らなかった(^^;

package jp.co.hoge.producer;

import javax.enterprise.inject.Produces;

public class NumberProducer {
    @Produces
    @MyNumber
    public int myNumber(){
        return 11;
    }
}
@Qualifier
@Retention(RUNTIME)
@Target({METHOD, FIELD, PARAMETER, TYPE})
public @interface MyNumber {
}
@Inject
@MyNumber
private int number;
System.out.println("私の堀北真希さんファンクラブ会員番号は" + number);

私の堀北真希さんファンクラブ会員番号は11

とか

package jp.co.hoge.producer;

import javax.enterprise.inject.Produces;

public class HorikitaProducer {
    @Produces
    @Makimaki
    public String getHorikitaName(){
        return "堀北真希";
    }
}
@Qualifier
@Retention(RUNTIME)
@Target({METHOD, FIELD, PARAMETER, TYPE})
public @interface Makimaki {
}
@Inject
@Makimaki
private String name;
System.out.println(name);

堀北真希

みたいな。メリットはなんだろ…。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村