Spring 注解引用 xml 中的 sessionFactory,怎样实现?

我想直接用注解的方式在引用一个已经在xml中定义的sessionFactory,怎样实现。
先是DGsysHibernate 这个类
public class DGsysHibernate extends HibernateDaoSupport {}

其次是
public class AbstractService extends DGsysHibernate { }

再是

public class ModuleServiceImpl extends AbstractService implements ModuleService {}

如果我在XML中这样配置



是可以直接实现的

但如果每个业务层都配置觉得麻烦,想直接在 AbstractService 这个直接就用注解的方式引用 sessionFactory,那么继承的实现类就不用配置了,其次是如果不能在AbstractService 这里注解引用sessionFactory,那么可以在
ModuleServiceImpl 这里用注解的方式引用吗?怎样实现,谢谢?

4个回答

从错误信息看应该是hibernateTemplate这个Bean没有注入吧,因为你继承了HibernateDaoSupport类,这里面有个方法在Spring容器初始化的时候会去校验一把的:
[code="java"]
protected final void checkDaoConfig() {
if (this.hibernateTemplate == null) {
throw new IllegalArgumentException("'sessionFactory' or 'hibernateTemplate' is required");
}
}
[/code]

[code="java"]
public class DGsysHibernate extends HibernateDaoSupport {

@Resource(name = "sessionFactory")
private SessionFactory sessionFactory;

@Override
protected void initDao() throws Exception {
    super.initDao();
    setSessionFactory(sessionFactory);
}

}
[/code]
不知道是不是你想要的。我没试过,没有Hibernate的环境。 :)

:o 启动时报啥错误啊

[code="java"]
@Repository
public class BaseDaoSupport extends
HibernateDaoSupport implements IBaseDaoSupport {

private SessionFactory mySessionFactory;

@Resource
public void setMySessionFactory(SessionFactory sessionFactory) {
    this.mySessionFactory = sessionFactory;
}

@PostConstruct
public void setSupportSessionFactory() {
    super.setSessionFactory(mySessionFactory);
}

[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐