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

      

  • 相关阅读:
    关于域名备案申请
    meta标签中的http-equiv属性使用介绍
    WDCP3.3中多PHP版本安装方法,以及安装遇到的问题
    模拟《意尔康》网站加载动画效果
    如何提示系统所在的浏览器版本过低?
    Dedecms升级php版本{dede:field.body/}不解析,文章内容不显示
    微信weixin://xxx 分析
    SuperSlide之属性targetCell介绍
    了解JSON Web令牌(JWT)
    如何向这些CA来申请数字证书呢?
  • 原文地址:https://www.cnblogs.com/sunrunzhi/p/10110560.html
Copyright © 2011-2022 走看看