2011-04-12 5 views
1

JSF 2.0 애플리케이션이 있으며 Spring을 통합하므로 hibernateTemplate을 사용할 수 있습니다. 이미 JSF 통합에 대해 Spring documentation과상의 한 후이를 설정하는 조치를 취했습니다. 모든 bean 클래스는 SuperBean이라는 추상 수퍼 클래스를 확장합니다. 수퍼 빈은 원하는 주입 지점입니다. 스프링에서 모든 콩을 선언하지 않아도됩니다. 나는 이것을 단지 abstract = "true"로 선언하고 SuperBean 클래스를 확장하는 어떤 서브 클래스 bean도 dao를 주입 시키길 바랬다. 런타임시 null입니다.추상 수퍼 클래스가있는 JSF 관리 빈에 DAO를 주입하지 않는 스프링

이 수퍼 클래스 SuperBean을 선언하고 Spring에 dao를 주입 할 수 있습니까? 저는 봄에 모든 콩 수업을 선언하고 싶지 않습니다.

(성능 측면에서 볼 때) 대체 옵션은 Spring Bean을 사용하지 않고 DAO를 @applicationScoped로 선언하고 JEE의 CDI를 사용하여 SuperBean 클래스에 삽입한다고 가정합니다. 성능면에서 더 좋을까요?

답변

1

위의 예에서는 serviceTemplate이 원하는 것을 보여주고 있습니다. parent = "serviceTemplate"에 유의하십시오. 수퍼 빈에서 물려받은 사람들과 비슷한 일을해야합니다. 다른 옵션이 있지만 serviceTemplate에서 시작할 수있는 최상의 코드 일 수 있습니다. 그런 다음 here을 읽어보십시오.

+0

serviceTemplate bean 정의를 추가했습니다. 그것은 봄에 의해 제공되는 또 다른 추상 클래스입니다. 나는 봄에 모든 콩을 정의하는 것을 피하고 싶다. 내 SuperBean 클래스에는 setDaoService (DaoService dao) {// set attr} 메소드가 있습니다. SubBean이 SuperBean이므로 서브 클래스 인 모든 bean은 DAO를 가져야합니다. 이것이 가능한가? – Adam

관련 문제