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

  

Java高级架构师(一)第12节:Service的实现以及模块化的更多相关文章

  1. 好好讲一讲,到底什么是Java高级架构师!

    一. 什么是架构师 曾经有这么个段子: 甲:我已经应聘到一家中型软件公司了,今天上班的时候,全公司的人都来欢迎我. 乙:羡慕ing,都什么人来了? 甲:CEO.COO.CTO.All of 程序员,还 ...

  2. Java高级架构师(一)第01节:整体课程概览

    本课程专注于构建:高可扩展性.高性能.大数据量.高并发.分布式的系统架构. 从零开始.全面系统.成体系的软件架构课程,循序渐进的讲述构建上述系统架构所需要的各种技术知识和技能. 适应人群: 1:有一定 ...

  3. JAVA高级架构师基础功:Spring中AOP的两种代理方式:动态代理和CGLIB详解

    在spring框架中使用了两种代理方式: 1.JDK自带的动态代理. 2.Spring框架自己提供的CGLIB的方式. 这两种也是Spring框架核心AOP的基础. 在详细讲解上述提到的动态代理和CG ...

  4. Java高级架构师(一)第42节:应用上Nginx过后的体系结构

    以后的架构思考方向: 体系结构的演变

  5. Java高级架构师(一)第31节:Nginx简介、安装和基本运行

    第一节:主要介绍Nginx和安装

  6. Java高级架构师(一)第28节:Index、商品详细页和购物车

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  7. Java高级架构师(一)第26节:测试并调整登录的业务功能

    主Index的处理Java: package com.sishuok.architecture1; import org.springframework.beans.factory.annotatio ...

  8. Java高级架构师(一)第25节:实现前端的业务登录等功能

    package com.sishuok.architecture1; import javax.servlet.http.Cookie; import javax.servlet.http.HttpS ...

  9. Java高级架构师(一)第19节:X-gen生成相应的Visitor

    package cn.javass.themes.smvcsm.visitors; import cn.javass.xgen.genconf.vo.ExtendConfModel; import c ...

随机推荐

  1. 从一段字符串中去除数字的shell方法

  2. 【spoj8222-Substrings】sam求子串出现次数

    http://acm.hust.edu.cn/vjudge/problem/28005 题意:给一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值.求F(1)..F(Length( ...

  3. bzoj 4569 [Scoi2016]萌萌哒 并查集 + ST表

    题目链接 Description 一个长度为\(n\)的大数,用\(S_1S_2S_3...S_n\)表示,其中\(S_i\)表示数的第\(i\)位,\(S_1\)是数的最高位,告诉你一些限制条件,每 ...

  4. Django【进阶】中间件

    中间件   一.概念 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 其 ...

  5. BeeFramework 系列一 安装篇(Arc)

    http://ilikeido.iteye.com/blog/1881390 Beeframework 是一款iOS快速开发框架,它以UISignal强大的路由功能替代原有Delegate方式,完成复 ...

  6. Linux上使用程序相对路径访问文件【转】

    转自:http://blog.csdn.net/yinxusen/article/details/7444249 今天一个朋友问我这个问题,说为什么在Windows上跑得很好的应用程序,移植到Linu ...

  7. Jasper语音助理

    1. 介绍 Jasper是一款基于树莓派的开源语音控制助理, 使用Python语言开发. Jasper工作原理主要是设备被动监听麦克风, 当收到唤醒关键字时进入主动监听模式, 此时收到语音指令后进行语 ...

  8. codevs 1018 [noip 2000 提高] 单词接龙

    题目链接:http://codevs.cn/problem/1018/ 题目描述 Description 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母, ...

  9. Selenium2+python自动化71-多个浏览器之间的切换【转载】

    前言 有时候一些业务的功能涉及到多个系统,需要在web系统1打开造一些数据,然后用到某些参数是动态生成的,需要调用web系统2里面的参数. 举个简单例子:在做某些业务的时候,需要手机短信验证码,我不可 ...

  10. ubuntu下使用mysql的一点笔记

    因为使用的是apt-get安装的.所以,mysql的安装路径在/var/lib/mysql下面 在普通用户下,cd /var/lib/mysql,居然提示: bash:cd:mysql Permiss ...