入侵万象服务器的方法
2006-11-08 09:12
323 查看
我一直在想,Spring 里的 HibernateTemplate 已经做得很完善了,为什么我们的实现不也继承他呢?
我们的DAO也可以继承HibernateOperations接口,这样一来,我们是不是不用再重复写HibernateOperations接口里所有的方法了呢?
如果要扩展我们自己的方法可以写在Manager里,而Manager又可以继承我们的DAO,然后ManagerImpl可以再继承DAOImpl的。
这只是一个想法,也在实施中出错了。
一般的实现我们都会继承HibernateDaoSupport,然后再通过this.getHibernateTemplate()....
先不说那么多了,贴一下我的代码:
接口BaseDAO
实现BaseDAOImpl,并试图用HibernateDaoSupport里的方法在实现里注入sessionFactory
接口BaseManager ,这里用来扩展我们需要的方法,如分页。
实现BaseManagerImpl ,这里注入BaseDAO
我的代码就是这些,但是我在启动服务器时,告诉我注入sessionFactory注入错误,然后我又看了HibernateDaoSupport里面注入sessionFactory,接着拷贝,然后提示sessionFactory和baseDAO无法注入。
javaeye里的各位大哥们,我想实现这样的想法,需要怎么做呢?
这样的想法是否是对的,是不是DAO太大了?
我们的DAO也可以继承HibernateOperations接口,这样一来,我们是不是不用再重复写HibernateOperations接口里所有的方法了呢?
如果要扩展我们自己的方法可以写在Manager里,而Manager又可以继承我们的DAO,然后ManagerImpl可以再继承DAOImpl的。
这只是一个想法,也在实施中出错了。
一般的实现我们都会继承HibernateDaoSupport,然后再通过this.getHibernateTemplate()....
先不说那么多了,贴一下我的代码:
接口BaseDAO
public interface BaseDAO extends HibernateOperations { }
实现BaseDAOImpl,并试图用HibernateDaoSupport里的方法在实现里注入sessionFactory
public class BaseDAOImpl extends HibernateTemplate implements BaseDAO { /** * Set the Hibernate SessionFactory to be used by this DAO. * Will automatically create a HibernateTemplate for the given SessionFactory. * @see #createHibernateTemplate * @see #setHibernateTemplate */ public void setSessionFactory(SessionFactory sessionFactory) { this.createHibernateTemplate(sessionFactory); } /** * Create a HibernateTemplate for the given SessionFactory. * Only invoked if populating the DAO with a SessionFactory reference! * <p>Can be overridden in subclasses to provide a HibernateTemplate instance * with different configuration, or a custom HibernateTemplate subclass. * @param sessionFactory the Hibernate SessionFactory to create a HibernateTemplate for * @return the new HibernateTemplate instance * @see #setSessionFactory */ protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) { return new HibernateTemplate(sessionFactory); } /** * Return the Hibernate SessionFactory used by this DAO. */ public SessionFactory getSessionFactory() { return super.getSessionFactory(); } }
接口BaseManager ,这里用来扩展我们需要的方法,如分页。
public interface BaseManager extends BaseDAO { /** * 通过持久化对象类型,和输入参数,开始记录和查询记录数,返回查询列表 * @param entityClass Class * @param firstResult int * @param maxResult int * @return List */ public List findToPage(Class entityClass, int firstResult, int maxResult); }
实现BaseManagerImpl ,这里注入BaseDAO
public class BaseManagerImpl extends BaseDAOImpl implements BaseManager { private BaseDAO baseDAO ; public BaseDAO getBaseDAO() { return baseDAO; } public void setBaseDAO(BaseDAO baseDAO) { this.baseDAO = baseDAO; } public List findToPage(Class entityClass, int firstResult, int maxResult) { baseDAO...... } }
我的代码就是这些,但是我在启动服务器时,告诉我注入sessionFactory注入错误,然后我又看了HibernateDaoSupport里面注入sessionFactory,接着拷贝,然后提示sessionFactory和baseDAO无法注入。
javaeye里的各位大哥们,我想实现这样的想法,需要怎么做呢?
这样的想法是否是对的,是不是DAO太大了?
相关文章推荐
- 黑客入侵万象服务器的方法
- 阿里云服务器被挖矿病毒minerd入侵的解决方法
- 关于ASP.net服务器的入侵方法详解
- 关于ASP.net服务器的入侵方法详解
- linux服务器被入侵查询木马(清除方法)
- 关于ASP.net服务器的入侵方法(1)
- 服务器被入侵后紧急补救方法
- asp.net服务器入侵方法
- 服务器被入侵后的紧急补救方法
- 关于ASP.net服务器的入侵方法(2)
- 服务器有效设置防止web入侵图文方法
- 管理员需要参考的当服务器被入侵后的紧急补救方法
- 解析企业服务器被入侵后紧急补救方法
- ASP.net服务器的入侵方法详解
- 入侵服务器的一种方法
- Windows2000服务器入侵前兆检测方法技巧
- SQL server 2005 创建数据库失败提示“Collation <服务器默认值> is not valid”解决方法
- 关于plsql链接远程数据库服务器的方法
- 真正入侵服务器!通过域名查服务器物理地址并直接反映到谷歌地图上
- Windows系统服务器IIS7.5 Asp.net支持10万请求的设置方法