과 함께 사용하고 있습니다. 여기에 대한 검색이 있었지만 대답을 찾지 못했습니다.@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
사용 : 글래스 피시 3.1과 JSF 2.1.
임시 해결책이 있습니까?
감사합니다.
'D'는 EJB (관리 빈)입니까? –
EJB 세션 관리 Bean (Stateless 또는 Stateful)을 사용하여 InitialContext.lookup을 사용하여 get 메소드에 인스턴스를 가져올 수 있습니다. 그러나 @Dependent와 같은 주사를 사용하고 싶습니다. 나 한테 더 좋은 생각이있어? – rogeriolino
Guice는 이런 종류의 것을 처리 할 수 있습니다. – ysdx