This is the preferred way of creating and configuring a new DAO using Spring 2.5 and annotations:
public interface SampleDAO extends HibernateDAO<Sample, Integer> { @Repository(value = "sampleDAO") public static class SampleDAOImpl extends HibernateDAOImpl<Sample, Integer> implements SampleDAO { @Autowired public SampleDAOImpl(SessionFactory factory) { setSessionFactory(factory); setReferenceClass(Sample.class); } } }
Simple, isn't it? With those few lines you are:
You need to write at least the DAO interface; the DAO implementation can be a subclass of HibernateDAOImpl or can be created by Spring you you do not need to alter or add any method.
public interface SampleDAO extends HibernateDAO<Sample, Integer> { } <bean id="sampleDAO" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces" value="com.myapp.SampleDAO"/> <property name="target"> <bean class="it.openutils.dao.hibernate.HibernateDAOImpl"> <property name="sessionFactory" ref="sessionFactory"/> <property name="referenceClass" value="com.myapp.Sample"/> </bean> </property> </bean>