-
service层处理的内容?5
我一直对j2ee里面service层所处理的内容不太理解,它调用DAO,再提供出方法给action使用.
如今有这样一个业务:在一个论坛系统中,用户可以对一条贴子做"顶"、"踩"操作.在数据库中有字段"up"和"down"用于记数。
以于这个业务我有三种设想:
1. Action里调用service层查询pojo对象的方法拿到该条记录后将up属性加1后再调用service层的update(pojo)的方法。
2. Action里调用service层里一个叫up(int id)的方法,该方法的实现是调用DAO的up方法(该方法会将up字段加1).
3. Action里调用service层里一个叫up(int id)的方法,该方法的实现是调用DAO的查询pojo对象方法,再更新pojo的up属性,再调用DAO的更新pojo对象的方法.
请大家帮我分析一下哪种设想才是真正service的设计模式,或者都不是...能把理由说清楚点就最好了,哪有service的详细介绍的能推荐一下吗?
2009年1月14日 11:40
4个答案 按时间排序 按投票排序
-
采纳的答案
假设你的POJO叫Topic
方式一:在POJO里定义
给Topic加两个方法:public void goUp(){ this.up++; } public void goDown(){ this.down++; }
然后TopicService tService = ...; Topic topic = tService.get(id); topic.goUp(); tService.update(topic);
方式二:你也可以在Service里定义public void goUp(Topic topic){ topic.setUp(topic.getUp()++); this.save(topic); }
我个人喜欢第一种。。。
2009年1月14日 11:54
-
我补充一些,这种增加1的操作,不要放在代码里面,高并发的时候,会出现统计错误的,除非你对这些方法做同步,成本太高。
建议直接在SQL语句里面让那个字段自增1。2009年1月14日 12:07
-
服务层处理业务逻辑,DAO封装Entity对象,Action作为Controller处理分发。
业务逻辑是最容易变化的地方,当业务改变时,只增加修改相应的代码即可。真正享受分层带来的益处。2009年1月14日 11:56
相关推荐
在简单的情况下,Service层可能直接调用DAO层的方法,但其主要目的是提供更高层次的抽象,处理业务规则,进行异常处理,并与其他服务或系统进行交互。 在分层架构中,Service层和DAO层的解耦是非常重要的。Spring...
2. **分层设计**:Spring框架支持分层的设计模式,这意味着不同的业务功能可以被封装在不同的层中,例如Web层负责处理用户界面,Service层处理业务逻辑,DAO层处理数据访问。这样的设计有助于保持代码的清晰度,并...
此外,Service层还可以处理事务管理,确保数据的一致性。这一层与Action层交互,提供业务服务,与DAO层交互,完成数据操作。 4. **Entity层(领域模型层/实体层)**: Entity层定义了应用中的对象模型,这些对象...
2. **Service层**:在三层架构(展示层、业务逻辑层、数据访问层)中,Service层负责处理业务逻辑,与DAO层交互,为Controller层提供数据。它是应用的核心,包含了复杂的业务规则和流程。 3. **Mocking和Stubbing**...
总之,"service层的单体操作抽象设计"关注的是如何在Java环境中,通过定义接口和基类来构建服务层的结构,使其具有良好的可扩展性和可维护性,同时结合设计模式和最佳实践,实现高效、灵活的业务逻辑处理。
### JAVA生成树Service层代码详解 #### 背景与目的 在开发具有层次结构的数据展示功能时,例如产品分类、组织架构等场景,我们常常需要构建一个可视化的树形结构来直观展示这些数据。本篇文章将深入探讨如何在Java...
例如,当用户请求删除一个记录时,Service层会调用DAO的delete方法,并处理可能出现的数据一致性问题。 5. **Oracle数据库**:Oracle是一种高性能的关系型数据库管理系统,广泛应用于企业级应用。在这个项目中,...
在本文中,我们将深入探讨如何使用DWR与JPA结合,直接访问SERVICE层并处理DAO返回的BEAN,以及在这样做时需要注意的关键点。 首先,当我们在SERVICE层定义了MANAGER方法后,这些方法通常封装了业务逻辑。通过DWR,...
本篇文章将深入探讨JDBC DAO的设计思想,以及如何结合Service层来构建一个完整的异常处理机制。 首先,理解JDBC DAO的基本概念。DAO模式的主要目标是提供一个接口,使得业务层可以与具体的数据库操作分离。这样,...
Service层则是业务逻辑处理的中心,它调用DAO层的方法来实现对数据的操作,并且可能涉及到事务管理、异常处理、缓存等高级功能。服务层代码生成通常包括服务接口和服务实现类,服务接口定义了对外提供的业务方法,...
首先,Service层是业务逻辑层,它负责处理应用的核心业务。开发者通常会在此层与数据库交互,调用Dao层的方法来完成数据的增删查改操作。Service层代码的自动生成可以帮助我们快速创建服务接口和实现类,减少重复...
每个模块都有明确的职责,Service层则主要负责处理业务逻辑,它依赖于Repository层与数据交互,并为Controller层提供服务。 进行Service层的单元测试,我们主要关注以下几个方面: 1. **测试环境配置**:在IDEA中...
Service 层是处理业务逻辑的层次,它主要负责处理业务逻辑,例如处理跨多个业务对象的操作。Service 不依赖于任何表现技术,不操作任务用于表现的对象,对于业务对象,Service 负责处理业务逻辑。例如,在 Struts ...
- **修改页面**:用户可以编辑自己的信息,Servlet接收更新请求,Service层处理数据更新,DAO执行相应的SQL更新语句。 - **权限控制**:为了防止普通用户删除其他用户,系统需要实施权限控制。这通常在Servlet中实现...
这样,我们只需要在自定义的服务类中继承ServiceImpl并传入对应的Mapper接口,就可以拥有一个完整的Service层,大大减少了编码工作量。 例如,如果我们有一个User实体类和对应的UserMapper,我们可以创建一个...
在Laravel框架中,服务层(Service Layer)是应用程序架构中的一个重要组成部分,它负责处理业务逻辑,隔离模型、控制器和视图之间的复杂性,确保代码的可维护性和可测试性。"Laravel开发-lara-service"这个项目可能...
在本项目中,自动生成的Service层代码可以包含对业务逻辑的封装,使得业务处理更加模块化,便于维护和测试。 iBatis,作为一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了一种灵活的映射机制。通过XML...
在Java Web开发中,Service层通常负责业务逻辑处理,它与Controller层相分离,使得代码结构更加清晰。然而,有时Service层需要访问HttpServletRequest对象来获取请求信息,如参数、头信息或Session数据。这时,我们...
在Service层,MyBatis常用于处理数据访问逻辑,通过Mapper接口与数据库进行交互,简化了数据库操作。 再来看`MyBatis-Plus`,它是MyBatis的扩展插件,为MyBatis提供了强大的CRUD操作。MyBatis-Plus提供了许多实用...
2. Service层:Service层是业务逻辑的载体,它调用DAO层的方法来完成实际的数据操作。插件能够生成服务接口和服务实现类,其中包含了对DAO方法的调用,以实现CRUD操作。这样,开发者可以专注于业务逻辑的实现,而...