This is the relevant error:
Could not autowire field: private org.hibernate.SessionFactory
com.venkat.homeapp.dao.impl.CustomerDAOImpl.sessionFactory; nested
exception is java.lang.NoClassDefFoundError
[Lorg/hibernate/engine/FilterDefinition;
and this is the probable cause:
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
see that you have both hibernate4 and hibernate3 things in there. Copied from this answer,
I think you should use
org.springframework.orm.hibernate4.LocalSessionFactoryBean instead of
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
From LocalSessionFactoryBean javadoc:
NOTE: This variant of LocalSessionFactoryBean requires Hibernate 4.0 or higher.
It is similar in role to the same-named class in the orm.hibernate3 package.
However, in practice, it is closer to AnnotationSessionFactoryBean since its
core purpose is to bootstrap a SessionFactory from annotation scanning.