Java高階架構師(一)第12節:Service的實現以及模組化
阿新 • • 發佈:2018-12-12
BaseService.java
package com.sishuok.architecture1.common.service; import java.util.List; import com.sishuok.architecture1.common.dao.BaseDAO; import com.sishuok.architecture1.common.vo.BaseModel; import com.sishuok.pageutil.Page; public class BaseService<M, QM extends BaseModel> implements IBaseService<M,QM> { private BaseDAO dao = null; public void setDAO(BaseDAO dao){ this.dao = dao; } public void create(M m) { dao.create(m); } public void update(M m) { dao.update(m); } public void delete(int uuid) { dao.delete(uuid); } public M getByUuid(int uuid) { return (M)dao.getByUuid(uuid); } public Page<M> getByConditionPage(QM qm) { List<M> list = dao.getByConditionPage(qm); qm.getPage().setResult(list); return qm.getPage(); } }
IBaseService.java
package com.sishuok.architecture1.common.service; import com.sishuok.architecture1.common.vo.BaseModel; import com.sishuok.pageutil.Page; public interface IBaseService<M,QM extends BaseModel> { public void create(M m); public void update(M m); public void delete(int uuid); public M getByUuid(int uuid); public Page<M> getByConditionPage(QM qm); }
在custom模組中,ICustomerService介面:
package com.sishuok.architecture1.customermgr.service; import com.sishuok.architecture1.common.service.IBaseService; import com.sishuok.architecture1.customermgr.vo.CustomerModel; import com.sishuok.architecture1.customermgr.vo.CustomerQueryModel; public interface ICustomerService extends IBaseService<CustomerModel, CustomerQueryModel>{ public CustomerModel getByCustomerId(String customerId); }
接下來實現:
package com.sishuok.architecture1.customermgr.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.sishuok.architecture1.common.service.BaseService; import com.sishuok.architecture1.customermgr.dao.CustomerDAO; import com.sishuok.architecture1.customermgr.vo.CustomerModel; import com.sishuok.architecture1.customermgr.vo.CustomerQueryModel; @Service @Transactional public class CustomerService extends BaseService<CustomerModel, CustomerQueryModel> implements ICustomerService{ private CustomerDAO dao = null; @Autowired private void setDao(CustomerDAO dao){ this.dao = dao; super.setDAO(dao); } public CustomerModel getByCustomerId(String customerId) { return dao.getByCustomerId(customerId); } }