0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CDIの勉強(その2)

0
Last updated at Posted at 2020-05-23

前回 の記事の続きです。

CDIの勉強(その2)

@Qualifierによる実装の指定

自分の場合、デプロイ時にエラーは生じず、そのままサーバー起動ができました。
よく調べてみると、Servletの @Inject アノテーションの部分で、以下のようなワーニングが出ていることに気づいた。
「Multiple beans are eligible for injection to the injection point [JSR-365 §5.2.2]」

ググってみると、どうやら インストールしている JBoss ToolsのCDIバリデーションツールが警告を出していることが分かった。

日本語に訳すと、「複数のBeanが注入ポイントへの注入の対象となる注入点に存在します。」とでも訳されるのでしょうか。

ここの部分について、わかりやすい解説がQiitaのこのページにありました。

組み込みの限定子については、省略。

@Producesの使い方

動的に Hello の適切な実装クラスを返してくれるようにする機能のために使用します。
こっちの方が分かりやすかったです。

@Alternative の使い方

代替のBeanとして、Mock用のBeanを使うやり方。
@Alternative をBeanの宣言をすることにより、代替のBeanであることを指し示し、
bean.xml にて、その使用を宣言する。@Producers が動的なBeanの入れ替えだったが、
この例の場合は、外部設定によるBeanの入れ替えが可能となる。

2020-05-23.png

この機能を使うことで、呼出元の単体テストを簡単に実装することが可能なことに気づいた。
また自身の機能を作成する場合においても、機能を構成するための様々なサービスを提供するBeanで構成し、その実装についても、小さな機能を積み重ね、また階層化することにより、自身の単体テストも簡単に実装することができそうだ。

次の記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?