黑马程序员技术交流社区

标题: Struts2 dao、service层泛型重构 [打印本页]

作者: a464538715    时间: 2013-5-30 20:24
标题: Struts2 dao、service层泛型重构
    前几天在看一个项目视频,里面用到了dao层泛型重构,但是service层就没有那样,我想知道service层泛型重构怎么写,dao层我已经会了,求详细的代码,好人一生平安。这是dao层重构代码
  1. public interface BaseDao<T> {
  2.     public Collection<T> getAllEntry();

  3.     public T getEntryById(Serializable id);

  4.     public void saveEntry(T t);

  5.     public void updateEntry(T t);

  6.     public void delteEntry(Serializable id);
  7. }
复制代码
  1. public class BaseDaoImpl<T> implements BaseDao<T> {
  2.         private Class classt;
  3.         @Resource(name="hibernateTemplate")
  4.         public HibernateTemplate hibernateTemplate;

  5.         public BaseDaoImpl() {
  6.                 ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();
  7.                 this.classt = (Class)type.getActualTypeArguments()[0];
  8.         }
  9.        
  10.         @Override
  11.         public Collection<T> getAllEntry() {
  12.                 return this.hibernateTemplate.find("from " + this.classt.getName());
  13.         }

  14.         @Override
  15.         public T getEntryById(Serializable id) {
  16.                 return (T) this.hibernateTemplate.get(this.classt, id);
  17.         }

  18.         @Override
  19.         public void saveEntry(T t) {
  20.                 this.hibernateTemplate.save(t);
  21.         }

  22.         @Override
  23.         public void updateEntry(T t) {
  24.                 this.hibernateTemplate.update(t);
  25.         }

  26.         @Override
  27.         public void delteEntry(Serializable id) {
  28.                 this.hibernateTemplate.delete(this.getEntryById(id));
  29.         }

  30. }
复制代码
  1. public interface DepartmentDao<T> extends BaseDao<T>{
  2. }
复制代码
  1. @Repository(value="departmentDao")
  2. public class DepartmentDaoImpl extends BaseDaoImpl<Department> implements DepartmentDao<Department> {
  3. }
复制代码

作者: zZZ~~    时间: 2013-5-30 20:47

public interface Manager {

        public void insert();
                public void iupdate();
       
        public int  getById(long id);
}
       
下面再写一个实现类 和写dao层类似
       
作者: zZZ~~    时间: 2013-5-30 21:01
这是struts2写的一个小项目 你可以参考下

src.zip

220.93 KB, 下载次数: 40


作者: a464538715    时间: 2013-5-30 23:30
zZZ~~ 发表于 2013-5-30 21:01
这是struts2写的一个小项目 你可以参考下

我感觉你根本不知道我在说什么....你的代码连dao层泛型重构都没有
作者: zZZ~~    时间: 2013-5-31 08:08
a464538715 发表于 2013-5-30 23:30
我感觉你根本不知道我在说什么....你的代码连dao层泛型重构都没有

呵呵 对不起 没看懂你的问题 我以为你是问泛型service层怎么写
所以给你个例子
你前面dao层都写出来了 service层和dao层实现是一样的
作者: a464538715    时间: 2013-5-31 12:32
zZZ~~ 发表于 2013-5-31 08:08
呵呵 对不起 没看懂你的问题 我以为你是问泛型service层怎么写
所以给你个例子
你前面dao层都写出来了 se ...

我尝试了 但是不行 注入不成功




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2