2010-10-12 36 views
5

Tôi đang cố gắng sử dụng HibernateInterceptor như một lời khuyên và tôi đang cố gắng để autowire nó.Autowiring HibernateInterceptor như lời khuyên

Mã này được như sau,

@Aspect 
public class InterceptorAdvice{ 


    private HibernateInterceptor hibernateInterceptor; 

    @Autowired 
    public void setHibernateInterceptor(@Qualifier("hibernateInterceptor") HibernateInterceptor hibernateInterceptor) { 
     this.hibernateInterceptor = hibernateInterceptor; 
    } 

    @Around("execution(* *..*.dao..*.*(..))") 
    public Object interceptCall(ProceedingJoinPoint joinPoint) throws Exception { 
     Object obj = null; 
     try{ 
      ....... 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     return obj; 

    } 

} 

Sau đây là bản đồ XML của tôi,

<bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor" autowire="byName"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 
<!--To enable AspectJ AOP--> 
<aop:aspectj-autoproxy/> 
<!--Your advice--> 
<bean class="com.web.aop.InterceptorAdvice"/> 
<!--Looks for any annotated Spring bean in com.app.dao package--> 
<context:component-scan base-package="com.web.dao"/> 
<!--Enables @Autowired annotation--> 
<context:annotation-config/> 

Khi tôi kiểm tra hibernateInterceptop, tất cả tôi nhận được là NULL: (... Không chắc chắn tại sao không thể tự động chặn thiết bị đánh chặn ngủ đông

Bất kỳ ý tưởng nào? Cảm ơn bạn đã dành thời gian.Chúc mừng, J

+0

Điều gì sẽ xảy ra khi bạn đặt thủ công thuộc tính khác cho 'HibernateInterceptor' trong cấu hình Spring? –

Trả lời

0

Bạn có một vài kẻ đánh chặn không?

Nếu bạn đang sử dụng @Autowired với @Qualifier, tôi khuyên bạn nên sử dụng @Resource thay thế. Nó nhiều hơn ... tiêu chuẩn.

@Resource(name="hibernateInterceptor") 
public void setHibernateInterceptor(HibernateInterceptor value) { 
    hibernateInterceptor = value; 
} 

Tôi đã có vấn đề với @Autowired và @Qualifier một lần, nhưng không bao giờ với @Resource (@Resource nó JSR250, không mùa xuân, nhưng mùa xuân hỗ trợ nó).

Nếu bạn chỉ có một hibernateInterceptor, bạn chỉ có thể sử dụng @Resource với bộ định danh tên.

Các vấn đề liên quan