首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java中daoservice的区别,为什么要用service

读了下面的文章 让我豁然开朗 转文: 首先解释面上意思,service是业务,dao是数据访问。...呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道...我们都知道,**标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一代码,不会影响我其他代码,如果你会像spring...这样的框架,你会了解面向接口编程,**表示调用控制,控制调用业务,业务调用数据访问。...比说你现在用的是SSH框架,做一个用户模块: 1、假设现在你做这个功能会用到user表和权限表,那么你前台的页面访问action,action再去调用用户模块service,用户模块service判断你是操作

94020
您找到你想要的搜索结果了吗?
是的
没有找到

java框架中的controller、dao、domainservice、view

2.dao:DAO主要是做数据持久的工作,负责与数据库进行联络的一些任务都封装在此, DAO设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理...,但是封装的数据是前端的JS脚本,需要使用的数据 4.serviceService主要负责业务模块的逻辑应用设计。...同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。...Service的业务实现,具体要调用到已定义的DAO的接口,封装Service的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。...2.对于MVC模式,MVC本身并不属于设计模式的一种,它是一种设计结构,这种结构的最终目的是为了解耦,也就是不同逻辑的代码自身改变的时候,你别影响其他

3.9K21

java框架中的controller、dao、domainservice、view

2.dao:DAO主要是做数据持久的工作,负责与数据库进行联络的一些任务都封装在此,      DAO设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理...,但是封装的数据是前端的JS脚本,需要使用的数据 4.serviceService主要负责业务模块的逻辑应用设计。      ...同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。...Service的业务实现,具体要调用到已定义的DAO的接口,封装Service的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。...2.对于MVC模式,MVC本身并不属于设计模式的一种,它是一种设计结构,这种结构的最终目的是为了解耦,也就是不同逻辑的代码自身改变的时候,你别影响其他

1.2K20

SpringBoot项目中model、Dao、Mapper、controllerservice、entity作用

2dao(mapper) 又被成为mapper,叫数据持久,先设计接口,然后在配置文件中进行配置其实现的关联。dao的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。...数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中 3service 业务逻辑,完成功能的设计 和dao一样都是先设计接口,再创建要实现的类...接下来就可以在service调用dao的接口进行业务逻辑应用的处理。...service的impl是把mapper和service进行整合的文件 封装Service的业务逻辑有利于业务逻辑的独立性和重复利用性。...4controller 控制,控制业务逻辑service,控制请求和响应,负责前后端交互 controller主要调用Service里面的接口控制具体的业务流程,控制的配置也要在配置文件中进行 5

3.9K20

JAVA中Action, Service ,model 和 Dao的功能区分

集成SSH框架的系统从职责上分为四:表示、业务逻辑、数据持久和域模块,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。...Dao主要做数据库的交互工作 Model 是模型 存放你的实体类 Service 做相应的业务逻辑处理 Action是一个控制器 最基本的分层方式,结合了SSH架构。...Service,引用对应的Dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为Service接口和ServiceImpl实现类。...Action:引用对应的Service实现业务逻辑,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理、前端输入合法性检验(前端可修改网页绕过前端合法性检验...对象的调用流程:JSP—Action—Service—DAO—Hibernate—数据库。

19820

JAVA中Action, Service ,modle 和 Dao的功能区分

JAVA中Action, Service ,modle 和 Dao的功能区分 首先这是现在最基本的分层方式,结合了SSH架构。modle就是对应的数据库表的实体类。...Action是一个控制器 首先解释面上意思,service是业务,dao是数据访问。...我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一代码,不会影响我其他代码,如果你会像spring...,这样以后维护或者改错比较容易,性能也高一些 简单的说DAO是跟数据库打交道的,service是处理一些业务流程的, 至于你说的为什么要用service封装,我认为:一般来说,某一个程序的有些业务流程需要连接数据库...,有些不需要与数据库打交道而直接是一些业务处理,这样就需要我们整合起来到service中去,这样可以起到一个更好的开发与维护的作用,同时也是MVC设计模式中model功能的体现 最基本的分层方式,结合了

84230

JAVA中Action, Service ,model 和 Dao的功能区分

集成SSH框架的系统从职责上分为四:表示、业务逻辑、数据持久和域模块,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。...Dao主要做数据库的交互工作 Model 是模型 存放你的实体类 Service 做相应的业务逻辑处理 Action是一个控制器 最基本的分层方式,结合了SSH架构。...Service,引用对应的Dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为Service接口和ServiceImpl实现类。...Action:引用对应的Service实现业务逻辑,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理、前端输入合法性检验(前端可修改网页绕过前端合法性检验...对象的调用流程:JSP—Action—Service—DAO—Hibernate—数据库。

1.2K30

讨论:Service需要接口吗?

前几天刷头条又刷到了「Service和Dao真的有必要每个类都加上接口吗?」这个问题,之前简单回答了一波,给出的观点是「看情况」 现在结合我参与的项目以及阅读的一些项目源码来看。...我整理了支持Service和Dao需要加上接口的理由,总结下来就这么三个: 可以在尚未实现具体Service逻辑的情况下编写上层代码,如Controller对Service的调用 Spring默认是基于动态代理实现...这里推荐一个个人比较喜欢的开发流程,自上向下的编码流程: 先在Controller编写逻辑,遇到需要委托Service调用的地方,直接先写出调用代码。...一般项目结构都是按来划分的,如下所示: Controller Service Dao 对于不需要多实现的情况,也就不需要接口了。上面的项目结构即可满足要求。...本文针对「Service是否需要接口」这个问题,指出需要接口的理由的问题。以及个人对这个问题的观点,希望在评论区写出自己的理解 !

1.8K40

Service 异常抛到 Controller 处理还是直接处理?

不管啥,你要根据需求去”设计一个修复错误“的流程。如一个常见的流程要后端抛异常,然后一路到某个集中处理错误的代码,将其转换为某个HTTP的错误(业务错误码)提供给前端,前端再映射做”提示“。...但若重试多次无效,若设计了某种热备方案,可能改为发到另一个服务器。“重试”和“使用备份的依赖”都是“立刻处理“。...是管理工作线程的“master” 一个网络请求的“外部容器”是一个Web Server 一个用户进程的“外部容器”是[操作系统] Erlang把这种supervisor-worker的机制融入到语言的设计...这也是软件系统设计的一般原则。无状态才意味着可随时随地安心重启。用户数据不会因为因为下一条而会出问题 后端对数据的修改依赖DB的事务。因此一个改一半的、没提交的事务不会造成副作用。...在svc这是不用处理任何异常,因此不写[try……catch]天经地义。但实际上doStep1、doStep2、doStep3任何一个抛异常都会造成svc的数据状态不一致。

21620

Service 的异常是抛到 Controller 还是直接处理?

不管啥,你要根据需求去”设计一个修复错误“的流程。 如一个常见的流程要后端抛异常,然后一路到某个集中处理错误的代码,将其转换为某个HTTP的错误(业务错误码)提供给前端,前端再映射做”提示“。...但若重试多次无效,若设计了某种热备方案,可能改为发到另一个服务器。“重试”和“使用备份的依赖”都是“立刻处理“。...这也是软件系统设计的一般原则。无状态才意味着可随时随地安心重启。用户数据不会因为因为下一条而会出问题 后端对数据的修改依赖DB的事务。因此一个改一半的、没提交的事务不会造成副作用。...在svc这是不用处理任何异常,因此不写[try……catch]天经地义。但实际上doStep1、doStep2、doStep3任何一个抛异常都会造成svc的数据状态不一致。...Java因为Checked Exception设计问题不得不避免使用,而Uncaughted Exception实在是太过于弱鸡,是不能给程序员提供更好地帮助的。

15710

Service 的异常是抛到 Controller 还是直接处理?

不管啥,你要根据需求去”设计一个修复错误“的流程。 如一个常见的流程要后端抛异常,然后一路到某个集中处理错误的代码,将其转换为某个HTTP的错误(业务错误码)提供给前端,前端再映射做”提示“。...但若重试多次无效,若设计了某种热备方案,可能改为发到另一个服务器。“重试”和“使用备份的依赖”都是“立刻处理“。...这也是软件系统设计的一般原则。无状态才意味着可随时随地安心重启。用户数据不会因为因为下一条而会出问题 后端对数据的修改依赖DB的事务。因此一个改一半的、没提交的事务不会造成副作用。...在svc这是不用处理任何异常,因此不写[try……catch]天经地义。但实际上doStep1、doStep2、doStep3任何一个抛异常都会造成svc的数据状态不一致。...Java因为Checked Exception设计问题不得不避免使用,而Uncaughted Exception实在是太过于弱鸡,是不能给程序员提供更好地帮助的。

8610

SSM框架中Dao,Mapper,controllerservice,model,entity都有什么作用「建议收藏」

model=entity。存放我们的实体类,与数据库中的属性值基本保持一致。 service。...对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,而service是针对我们controller,也就是针对我们使用者。...controller。控制器,导入service,因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。...==================2019.1.20补充================ 在实际开发中的Service可能被处理为实体Service,而不是接口,业务逻辑直接写在Service(Class...,不是Interface)中,Controller直接调用ServiceService调用Mapper。

71210

spring+mybatis数据源切换【service以及controller

一、基本的简单配置 首先是我认为比较好的切换是在service进行切换,基本思想是利用spring的AbstractRoutingDataSource类进行datasource的选择,就像map的key-value...name="annotationClass" value="org.springframework.stereotype.Repository"/> 做好了这些工作就可以在dao进行数据源的切换了...切换数据源 然而我们需要在service或者controller进行切换,而在进入service时已经开启了一个事务,这时候直接切换数据源是无效的,所以要在service前就切换数据源。...-- 3.根据切面动态切换数据源--> <aop:pointcut id="<em>service</em>" expression="execution(* com.test.<em>service</em>...三、直接在controller进行切换,继续探索中 因为项目需要切数据源的地方特别多,在<em>service</em><em>层</em>切换很费时间,所以准备在controller<em>层</em>进行切换,而尝试了下spring的切面在这里直接切不了

71210

Service代码中FileService.java展示

Service代码中FileService.java展示 import com.demo.fileTree.configuration.GlobalConfig; import com.demo.fileTree.model.FileHandleResponse...import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service...并且解压缩后放到服务器响应目录下, * 为什么不直接放压缩包,因为别人看一次,需要解压缩一次,也很浪费系统资源 * * @author xie * @version 1.0 * @Date 2017/5/27 */ @Service.../** * 返回某一结点(即文件夹)的下一级所有子节点,注意这里输入的不是具体文件或者不存在的路径,是已经判定存在的文件夹路径, * 如果是请求具体文件或者不存在的路径,在上一controller...就应该将文件内容读取并返回或者返回错误信息 * * @param filePath 项目路径 * @param relativePath 节点相比项目路径的相对路径,比如项目路径

35700
领券