今天将service层的设计发送给大家,希望大虾们,多拍两下,service层还是基于抽象、泛型,以减少代码的冗余量.关于是否将DAO的顶级接口和Service的顶级接口合并,我认为单独存在,有利于层次的清晰.
service层接口:IBaseService.java
package com.frame.ssh.service.base;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* Service 层基接口,处理业务逻辑.这里只提供基本的操作增、删、查、改的方法.
*
*
* @author zjc
* @version 1.0
* @since 1.0
*/
public interface IBaseService<T,ID extends Serializable> {
/**
* 添加实体类
*
* @param entity:需要添加的实体类
* @return 无返回值
* */
Serializable saveEntity(final T entity);
/**
* 修改实体类
*
* @param entity:修改持久化的对象
* @return 实现序列化的对象
* */
Serializable updateEntity(final T entity);
/**
* 修改实体类
*
* @param entity:修改持久化的对象
* @return 实现序列化的对象
* */
void deleteEntity(final T entity);
/**
* 修改实体类
*
* @param entity:修改持久化的对象
* @return 实现序列化的对象
* */
T getEntity(final Class<T> clazz,final ID id);
/**
* 修改实体类
*
* @param entity:修改持久化的对象
* @return 实现序列化的对象
* */
List<T> findEntity(final Map<ID,T> conditionMap);
}
service 业务操作:
package com.frame.ssh.service.base;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import com.frame.ssh.dao.base.IBaseDao;
/**
* 抽象service类,service层重复的业务操作调用,可以减少代码的重复调用。
*
* @author zjc
* @version 1.0
* @since 1.0
*/
public abstract class AdstractBaseService<T,ID extends Serializable,GeneralDAO extends IBaseDao<T, ID>> implements IBaseService<T, ID> {
private GeneralDAO baseDao;
public void deleteEntity(T entity) {
baseDao.deleteEntity(entity);
}
@Override
public List<T> findEntity(Map<ID, T> conditionMap) {
return baseDao.findEntity(conditionMap);
}
@Override
public T getEntity(Class<T> clazz, ID id) {
return baseDao.getEntity(clazz, id);
}
@Override
public Serializable saveEntity(T entity) {
return baseDao.saveEntity(entity);
}
@Override
public Serializable updateEntity(T entity) {
return baseDao.updateEntity(entity);
}
}
student接口:
package com.frame.ssh.service;
import java.io.Serializable;
import com.frame.ssh.service.base.IBaseService;
/**
* Student业务操作接口
*
* @author zjc
* @version 1.0
* @since 1.0
*/
public interface IStudentService<T,ID extends Serializable> extends IBaseService<T, ID>{
}
student实现类:
package com.frame.ssh.service.implement;
import com.frame.ssh.bean.Student;
import com.frame.ssh.dao.implement.StudentDao;
import com.frame.ssh.service.IStudentService;
import com.frame.ssh.service.base.AdstractBaseService;
public class StudentService extends AdstractBaseService<Student, Integer,StudentDao> implements IStudentService<Student, Integer> {
}
分享到:
相关推荐
- **Chap12**:可能探讨了更高级的Web Service话题,如安全性、事务处理和性能优化。 - **Chap09**:可能涵盖了Delphi6和Kylix2中的SOAP客户端开发。 - **Chap10**:可能详细介绍了如何创建和部署SOAP服务器端...
本文的主要目的是探讨微服务架构Service Mesh的设计与应用,分析微服务架构中存在的一些问题,并对这些问题提出基于Service Mesh的Istio框架这种比较好的解决方案。同时,本文还将对Service Mesh的架构思想进行深入...
这个教程"delphi 6/Kylik2 soap/Web Service程序设计篇下册+代码"将深入探讨如何使用这些工具来构建和消费Web Service。 1. **SOAP组件和协议**: Delphi 6的Soap Toolkit提供了对SOAP的支持,包括TSoapServer和...
本文将深入探讨如何利用Web Service设计一个IP地址信息查询程序,并通过实际案例进行说明。 #### Web Service概述 Web Service是一种遵循特定标准(如XML、SOAP、WSDL等)构建的网络服务,它允许不同平台上的应用...
本课程由资深IT专家王家林主讲,旨在深度解析Android软硬整合的技术核心,涵盖HAL、Framework、Native Service、App及Browser的架构设计,并结合实战开发经验,帮助学员全面理解和掌握Android开发的各个环节。...
本篇文章将深入探讨Activity与Service之间的数据交互,并通过具体的BroadcastService实例来阐述相关知识点。 首先,理解Activity与Service的通信方式至关重要。主要有以下几种: 1. **Intent**: 这是最常见的通信...
本篇文章将深入探讨Android中的Start Service,这是一种启动Service的方式,它关注的是任务的启动而不是用户界面的反馈。 首先,理解Service的基本概念至关重要。Service并非在单独的线程中运行,而是与应用程序的...
本篇文章将深入探讨Android中的Service,分析不同类型的Service及其特性,并对比它们之间的差异。 首先,我们要了解Service的两种主要类型:`START_STICKY`和`START_NOT_STICKY`。这两种启动模式对Service的行为...
让我们深入探讨一下Android Service组件以及如何与记事本应用集成。 首先,Android的Service组件主要分为两种类型:标准Service和IntentService。在这个描述中,可能是使用了标准Service,因为IntentService会自动...
本篇文章将深入探讨这两个工具如何与SOAP和Web服务结合,并介绍相关程序设计的核心知识点。 首先,Delphi是由Embarcadero Technologies开发的一种集成开发环境(IDE),它主要用于Windows平台上的对象 Pascal编程。...
本文将深入探讨如何创建一个能够自动恢复的Service,以确保其在被终止后的最短时间内重新启动。 首先,理解Service的生命周期至关重要。Service有四种主要状态:STARTED、BINDED、STOPPED和DESTROYED。当Service...
本论文主要探讨了基于WEB SERVICE的数据库同步系统的设计与实现。该系统可以实现异构数据库之间的一致性同步,确保数据的一致性和安全性。本系统可以在Internet上实时同步异构数据库,实现了数据的可靠传输和安全...
本篇文章将深入探讨Service组件,特别是关于多进程守护的实现方式。 首先,我们来理解Service的基本概念。Service不同于Activity,它没有用户界面,但可以在后台运行,执行如音乐播放、网络通信等任务。Service的...
"安卓Service学习小程序"是一个专为开发者设计的示例项目,旨在帮助理解如何在Android应用中有效地使用Service组件。这个项目涵盖了Service的两种启动方式,这将是我们深入探讨的关键知识点。 1. **显式启动Service...
9. 信息技术服务管理(ITSM)工具:探讨如何利用ITSM工具来支持服务设计过程,包括服务资产和配置管理、变更管理和发布管理。 10. 案例研究和最佳实践:ITIL Service Design提供了各种实际案例,分析在现实世界中...
本项目是一个针对学生毕业设计的学习资源,提供了一个基于Android的app更新示例,让我们一起深入探讨其中的关键知识点。 1. **Android Service**: - Service是Android四大组件之一,用于在后台执行长时间运行的...
综上所述,"报表项目Reporting Service"涉及的核心知识点是利用Reporting Service创建、管理数据源和数据集,设计并部署报表,以及如何通过DEMO来实践这些操作。在"ReportTest"这个实例中,我们可以深入学习并掌握...
本教程“安卓service学习”将深入探讨如何在Android应用中有效地利用Service组件。 一、Service基本概念 Service是Android四大组件(Activity、Service、BroadcastReceiver、ContentProvider)之一,其设计目的主要...
本文将深入探讨如何在Android中实现开机自启动Service。 首先,我们要明白Android系统的权限管理机制。由于安全原因,从Android 8.0(API级别26)开始,系统对应用的自启动行为进行了限制,不允许应用在没有用户...