2010-10-12 14 views
5

मैं सलाह के रूप में हाइबरनेट इंटरसेप्टर का उपयोग करने की कोशिश कर रहा हूं और मैं इसे स्वत: करने की कोशिश कर रहा हूं। सुनिश्चित नहीं हैं कि क्यों (...:एडवायरिंग हाइबरनेट इंटेसेप्टर सलाह के रूप में

कोड इस प्रकार है के रूप में,

@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; 

    } 

} 

पीछा कर रहा है मेरी एक्सएमएल मानचित्रण,

<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/> 

जब मैं hibernateInterceptop जाँच, सभी मैं शून्य है इसके हाइबरनेट इंटरसेप्टर autowire करने में असमर्थ

कोई भी विचार? अपने समय के लिए धन्यवाद।

चीयर्स, जे

+0

क्या होता है जब आप स्प्रिंग कॉन्फ़िगरेशन में 'HibernateInterceptor' के लिए मैन्युअल रूप से दूसरी संपत्ति सेट करते हैं? –

उत्तर

0

क्या आपके पास कई इंटरसेप्टर हैं?

यदि आप @Autowired @Qualifier का उपयोग कर रहे हैं, तो मैं सुझाव दूंगा कि आप इसके बजाय @Resource का उपयोग करें। यह और अधिक है ... मानक।

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

मैं एक बार @Autowired और @Qualifier साथ समस्या नहीं थी, लेकिन कभी @Resource साथ (@Resource यह JSR250 है, वसंत नहीं है, लेकिन वसंत इसका समर्थन करता है)।

यदि आपके पास केवल एक हाइबरनेट इंटरसेप्टर है, तो आप नाम क्वालीफायर के साथ @Resource का उपयोग कर सकते हैं।

संबंधित मुद्दे