概要 CDIで、@Dependentなクラスを定義し、利用する側のクラスのフィールドで@Injectするときに、任意のパラメータを渡したい。 @Dependent public class Foo { @Inject private AnyService srv; private String arg; public void setArg(String arg) { this.arg = arg; } } @Dependent public class Bar { @Inject private Foo foo; // ← ここでパラメータargを渡したい。 } 解決方法 引数つきの@Qualifierを定義し、@Producesを使うことで実現できる。 @Qualifier @Retention(RUNTIME) @Target({ TYPE, METHOD, FIELD, PARAM