package li.service;
import java.io.Serializable;
import java.lang.reflect.Type;
import java.util.List;
import li.dao.AbstractDao;
import li.dao.Page;
import li.ioc.Ioc;
import li.util.Reflect;
/**
* 一个Abstract的Service,用户可以继承并扩展它形成自己的Service
*
* @author li (limingwei@mail.com)
* @version 0.1.3 (2012-06-26)
*/
public abstract class AbstractService<T, ID extends Serializable> implements IBaseService<T, ID> {
/**
* Dao对象
*/
private AbstractDao<T, ID> dao;
/**
* 你可以覆盖这个方法,如果不的话,框架会寻找 一个继承AbstractDao,泛型类型为 T的Bean
*
* @see li.ioc.Ioc#get(Class, Type...)
*/
protected AbstractDao<T, ID> getDao() {
if (null == this.dao) {
this.dao = Ioc.get(AbstractDao.class, Reflect.actualTypes(this.getClass()));
}
return this.dao;
}
/**
* 删除
*/
public Boolean delete(ID id) {
return getDao().delete(id);
}
/**
* 查找
*/
public T find(ID id) {
return getDao().find(id);
}
/**
* 列表
*/
public List<T> list(Page page) {
return getDao().list(page);
}
/**
* 保存
*/
public Boolean save(T entity) {
return getDao().save(entity);
}
/**
* 更新
*/
public Boolean update(T entity) {
return getDao().update(entity);
}
}