zoukankan      html  css  js  c++  java
  • Java高级架构师(一)第12节:Service的实现以及模块化

    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);
    	}
    	
    }
    

      

  • 相关阅读:
    Thinkphp 边学边用验证码无意间犯的错
    如何计算团队成员贡献分
    禅道使用之项目经理篇
    禅道使用之开发团队篇
    黑盒测试实践作业进度报告(周日)
    黑盒测试实践作业进度报告(周六)
    禅道使用之产品经理篇
    第1周小组博客作业——关于禅道测试管理的总结
    禅道介绍与环境搭建
    一个工作了5年的程序员,将来在哪里?
  • 原文地址:https://www.cnblogs.com/sunrunzhi/p/10110560.html
Copyright © 2011-2022 走看看