发表于: 2019-10-30 22:05:14
3 1037
今天完成的事情:
继续熟悉框架,看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后台的资料
遇到的问题:
突然发现我们自己做复盘的项目业务逻辑好简单.......
真实项目业务逻辑比较复杂,适用的场景也比较多,而且要求我们写的时候要严谨不出错。
收获:
终于看到了真实项目的代码,看看就能学到不少东西,以前做任务,做复盘项目的代码全都是自己写出来的,更多时候只需要实现某一个功能,完全没有看到过真实项目的业务代码,学到了。
评论