【发布时间】:2012-03-07 00:14:51
【问题描述】:
public class GenericDao <T, PK extends Serializable> {
private final Class<T> type;
@Resource(name = "sessionFactory")
private SessionFactory sessionFactory;
public GenericDao(final Class<T> type) {
this.type = type;
}
public PK save(final T o) {
return (PK) sessionFactory.getCurrentSession().save(o);
}
// ... get,delete, etc
应用上下文 bean:
<bean id="fooDao" class="com.mycompany.dao.GenericDao">
<constructor-arg>
<value>com.mycompany.Foo</value>
</constructor-arg>
</bean>
在服务层调用如下:
@Autowired
private GenericDao<Foo, Integer> fooDao;
...
public doStuffIncludingSave(Foo foo)
fooDao.save(foo);
【问题讨论】:
-
@soulcheck 在任何意义上都更好。例如,是否有我遗漏的最佳实践立场实践。我是否必须通过 xml 传递构造函数参数,是否适合泛型,这是它们的内置弹簧机制。
标签: java hibernate spring dependency-injection dao