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

      

  • 相关阅读:
    Codeforces Round #369 (Div. 2)
    Codeforces Round #361 (Div. 2)
    【转】.NET开发人员的瓶颈和职业发展
    【资料目录收藏】.NET开发必看资料53个 经典源码77个
    IT新人养成与蘑菇理论
    软件开发技术高手转向项目管理者要突破的误区
    关于程序猿的那些笑话
    工作流管理系统的应用
    工作流管理系统的标准和产品
    工作流系统的主要组成部分
  • 原文地址:https://www.cnblogs.com/sunrunzhi/p/10110560.html
Copyright © 2020-2023  润新知