私はここで検索しましたが、答えは見つかりませんでした。ジェネリックタイプの@Injectの使用
私のアプリケーションでは、私のコントローラ用の抽象的なメインクラスをいくつかのメソッドとプロパティで持っています。そして私はDAOを自動的に注入したい。
abstract class AbstractController<E extends AbstractEntity, D extends AbstractDAO<E>> {
@Inject
private D dao;
// getters and setters
}
abstract class AbstractDAO<E extends AbstractEntity> {
@PersistentContext
private EntityManager em;
// finds returns E
}
// implemenation/usage
class CarController extends AbstractController<Car, CarDAO> {
}
例外を取得:
org.jboss.weld.exceptions.DefinitionException: WELD-001407 Cannot declare an injection point with a type variable: [field] @Inject private AbstractController.dao
使用:Glassfishの3.1とJSF 2.1を。
これに代わる回避策が存在しますか?
ありがとうございました。
'D'はEJB(マネージドBean)ですか? –
EJBセッション管理Bean(ステートレスまたはステートフル)を使用して、InitialContext.lookupを使用してgetメソッドにインスタンスを取得できます。しかし、私は@Dependentのような注射を使いたいです。あなたは私のために良いアイデアを持っていますか? – rogeriolino
Guiceはこのようなことを処理できます。 – ysdx