发表于: 2019-10-30 22:05:14

3 1040


今天完成的事情:

继续熟悉框架,看wiki上面的一些资料

@Override
public Long insert(Article article) throws ServiceException,
     ServiceDaoException {

  log.info(" insert data : " + article);

  if (article == null) {
     return null;
  }

  long currentTimeMillis = System.currentTimeMillis();
  article.setCreateAt(currentTimeMillis);
  article.setUpdateAt(currentTimeMillis);

  Long result = null;
  try {
     result = (Long) dao.save(article);
  } catch (DaoException e) {
     log.error(" insert wrong : " + article);
     log.error(e);
     e.printStackTrace();
     throw new ServiceDaoException(e);
  }

  log.info(" insert data success : " + result);

  return result;
}

这是service实现类的一段代码,之前的还好,真实项目还做了校验,如果传进来的参数为空的话,就要返回空,这点我们做复盘的时候,没有考虑过,很不严谨,还有就是最后调用的方法是save方法,dao.save(),这个比较奇怪,如果按照以前的开发模式的话,其实是要把dao层注入到service层当中,例如

@Autowired

private Dao dao;

然后dao调用save方法比较合理,这里我没找到,点进去看一下

package com.ptteng.common.dao;

public class BaseDaoServiceImpl implements com.ptteng.common.dao.BaseDaoService {
   protected com.gemantic.dal.dao.Dao dao;
   private static final org.apache.commons.logging.Log log;

   public BaseDaoServiceImpl() { /* compiled code */ }

   public com.gemantic.dal.dao.Dao getDao() { /* compiled code */ }

   public void setDao(com.gemantic.dal.dao.Dao dao) { /* compiled code */ }

   public java.util.List<java.lang.Long> getIdsByDynamicCondition(java.lang.Class clz, java.util.Map<java.lang.String,java.lang.Object> conditions, java.lang.Integer start, java.lang.Integer limit) throws com.gemantic.common.exception.ServiceException, com.gemantic.common.exception.ServiceDaoException { /* compiled code */ }

   public boolean fakeDelete(java.lang.Class clz, java.lang.Long id) throws com.gemantic.common.exception.ServiceException, com.gemantic.common.exception.ServiceDaoException { /* compiled code */ }

   public void deleteList(java.lang.Class clz, java.util.List<java.lang.Long> ids) throws com.gemantic.common.exception.ServiceException, com.gemantic.common.exception.ServiceDaoException { /* compiled code */ }

   public static void main(java.lang.String[] args) throws com.gemantic.common.exception.ServiceException, com.gemantic.common.exception.ServiceDaoException { /* compiled code */ }

   public java.lang.Object getObjectByDynamicCondition(java.lang.Class clz, java.util.Map<java.lang.String,java.lang.Object> conditions, java.lang.Integer start, java.lang.Integer limit) throws com.gemantic.common.exception.ServiceException, com.gemantic.common.exception.ServiceDaoException { /* compiled code */ }
}

原来是自己封装的一个,包名com.ptteng.common.dao

我们的service实现类恰好继承了BaseDaoServiceImpl这个类,继承了这个类,就能继承父类中除了私有之外的一切,所以这里定义的 dao ,我们也能使用,save方法就是dal.dao下面的一个方法,这也够绕的.....还好二大帮忙梳理了一下逻辑,要不看都看晕了。




明天计划的事情:

总结一下,看下wiki后台的资料




遇到的问题:


突然发现我们自己做复盘的项目业务逻辑好简单.......

真实项目业务逻辑比较复杂,适用的场景也比较多,而且要求我们写的时候要严谨不出错。




收获:

终于看到了真实项目的代码,看看就能学到不少东西,以前做任务,做复盘项目的代码全都是自己写出来的,更多时候只需要实现某一个功能,完全没有看到过真实项目的业务代码,学到了。


返回列表 返回列表
评论

    分享到