某个DAO继承HibernateDaoSupport,在SPRING配置文件中不配置sessionFactory 20

看到一个项目写的DAO继承HibernateDaoSupport但是在SPRING配置文件中没有为这个DAO配置<propertyname="sessionFactory... 看到一个项目写的DAO继承HibernateDaoSupport
但是在SPRING配置文件中没有为这个DAO配置
<property name="sessionFactory" ref="sessionFactory"></property>
如何实现的
有过设计经验的再回答:
这个UserDao继承了一个泛型设计的HibernateGenericDao<UserDao> ,而HibernateGenericDao最后再继承了HibernateDaoSupport.这种低耦合的设计非常佩服.
采用的是注解配置实体类并没有配置DAO.配置文件和注解我都看过了.
所有的DAO是用XML配置的.
sessionFactory在配置文件中也配置好了.
就是定义的xxxDao没有配置<property name="sessionFactory" ref="sessionFactory"></property>
比如UserDao里面的某个方法
//获得所有数据
public List getAll()
{
String hql = "from User";
List list = find(hql);//调用HibernateGenericDao的find方法

if(list == null || list.size() == 0)
return null;
return list;
}
//HibernateGenericDao.java
public List find(String hql, Object... values) {
Assert.hasText(hql);
return getHibernateTemplate().find(hql, values);
}
展开
 我来答
realgood99
2010-03-25 · 超过26用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:62.4万
展开全部
<!-- 配置数据源 -->
<!-- 使用 LocalSessionFactory Bean 配置 SessionFactory 之前,必须为其提供对应的数据
源,配置代码如下: -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/mysql" />
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="user" value="root"></property>
<property name="password" value=""></property>
<!-- 设置连接池的最大容量 -->
<property name="maxPoolSize" value="40" />
<property name="minPoolSize" value="1" />
<property name="initialPoolSize" value="1" />
<property name="maxIdleTime" value="20" />
</bean>
<!-- 配置sessionFactory -->
<!-- ,通过LocalSessionFactory Bean 类,可以
将 Hibernate 的 SessionFactory 纳入其IoC 容器内。 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>

采用依赖注入为dao配置sessionfactory
<bean id="userInfoDao" class="com.yuorCompany.C3p0.dao.userinfo.impl.UserInfoDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
pieryon
2015-09-21 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166873
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
  这个跟配置有关系,配置文件设置的注入方式是按名称还是类型等,spring会根据名字相同或者类型相同,直接使用setter方法注入进去的,如果还不确认什么时候注入进去的可以在setter方法上面设置断点,debug跟踪就知道了。

  一般情况下sessionFactory在bean配置文件里面已经注入了的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vip_橙子
2010-03-25 · TA获得超过253个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:144万
展开全部
Hibernate中一个事务肯定要关联一个SessionFactory了,然而这个SessionFactory却没有在DAO中体现。
其实主要的原因是HibernateDaoSupport类已经默默地做了封装的工作,它用一个setSessionFactory方法将SessionFactory进行注入,所以继承自HibernateDaoSupport类的DAO都会具有SessionFactory的属性,从而可以通过SessionFactory创建Session实例操作数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5ca104357
2010-03-25 · TA获得超过2595个赞
知道小有建树答主
回答量:874
采纳率:100%
帮助的人:1379万
展开全部
你也说了,
UserDao继承了一个泛型设计的HibernateGenericDao<UserDao>
而你在spring中没有看到UserDao的<property name="sessionFactory" ref="sessionFactory"></property>

那说明了在UserDao的父类HibernateGenericDao<UserDao>中已经配置了,直接继承过来,不用再配置了。

详细:
QQ 530484923
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuej007
2010-03-25
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
用注解就不用配置bean了。
@Autowired
@Resource
去看看这些是干什么的吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式