SPR-5326: HibernateClinic in PetClinic sample should use constructor-injection instead of field injection

This commit is contained in:
Arjen Poutsma 2009-01-21 22:13:00 +00:00
parent f09db3a106
commit fe31de529b
2 changed files with 9 additions and 4 deletions

View File

@ -5,6 +5,7 @@ import java.util.Collection;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.samples.petclinic.Clinic;
import org.springframework.samples.petclinic.Owner;
import org.springframework.samples.petclinic.Pet;
@ -13,7 +14,6 @@ import org.springframework.samples.petclinic.Vet;
import org.springframework.samples.petclinic.Visit;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.dao.DataAccessException;
/**
* Hibernate implementation of the Clinic interface.
@ -35,9 +35,12 @@ import org.springframework.dao.DataAccessException;
@Transactional
public class HibernateClinic implements Clinic {
@Autowired
private SessionFactory sessionFactory;
@Autowired
public HibernateClinic(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Transactional(readOnly = true)
@SuppressWarnings("unchecked")

View File

@ -3,7 +3,9 @@
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean class="org.springframework.samples.petclinic.hibernate.HibernateClinic" />
<bean class="org.springframework.samples.petclinic.hibernate.HibernateClinic">
<constructor-arg ref="sessionFactory"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
p:dataSource-ref="dataSource" p:mappingResources="petclinic.hbm.xml">