我们知道在Hibernate里比较重要的sessionFactory,经过Spring的管理可以很好地为Spring里注入使用的bean服务(提供数据源的使用),但是,当我们所要使用的类不是像我们尝试用的Dao、Service、等,而是一个我们自己所要使用的一个公共的类,在这个公共类中我们用到了:getHibernateTemplate().getSessionFactory(),即,我们用到了Sessionfactory,那该怎样去引入Spring里的Sessionfactory呢?
1、我们要先使Spring管理我们这个bean(自己的公共类pagination):
1 <bean id="pagination" class="util.Pagination" p:sessionFactory-ref="sessionFactory"/>
2、再把这个bean注入到所要使用它的类中,在此我注入到了bikeDao中:
1 <bean id="bikeDao" class="dao.impl.BikeDaoImpl" p:sessionFactory-ref="sessionFactory"> 2 <property name="pagination" ref="pagination"></property> 3 </bean>
3、在使用bean(pagination)的类(BikeDaoImpl)中,这样引用(以下的和其他的都一样):
1 private Pagination pagination; 2 3 public Pagination getPagination() { 4 return pagination; 5 } 6 7 public void setPagination(Pagination pagination) { 8 this.pagination = pagination; 9 } 10 public List<Bike> findAll() { 11 String str = "Bike"; 12 return (List<Bike>)pagination.findAll(str); 13 }
4、在我的pagination里就可以用getHibernateTemplate().getSessionFactory()了。