- 浏览: 746734 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
lengzl:
请问,那个Node 是哪个包里面的类?
JAVA 二叉树的递归和非递归遍历 -
gongchuangsu:
总结的很好,感谢感谢
JAVA 二叉树的递归和非递归遍历 -
Caelebs:
666666666 居然是10年发的,难怪截屏自动保存的名字是 ...
截图工具 -
jijiqw:
是注解不是注释。。。
Spring @Transactional (一) -
letueo:
[b][b][b][b][b][b][b][b][b][b][ ...
Spring @Transactional (一)
本人在用ssh做项目的时候用的分层是
action-service-dao-po
一个模块(后台用户模块,后台管理员模块,前天界面模块)用一个action控制;
一个action(DispatchAction)调用多个service;
一个service调用多个Dao;
一个Dao对应一个po
但是实现后发现action 类的方法比较臃肿,如果一个功能对应一个action ,好像action类比较多。
由于自己的java技术都是一路自学过来的,很少项目的经验。
问下在分大,中,小,型项目中,分层思想是怎样的,主要是前台页面、action、service、dao 四者之间的对应关系。。在网上找不到相关的内容,自己又想总结下,所以请教下大侠们。
问题补充
另: "一个action(DispatchAction)调用多个service", 那事务是在哪儿控制的?
事务控制可以在dao层配置 或者在service层 该可以吧
一个功能对应一个action不是很好吗,稍微大一点的系统不可能你一个人完成的哦。
不过我也讨厌它的配置文件。。
jiyanliang (初级程序员) 2009-06-18
zhxing 写道
本人在用ssh做项目的时候用的分层是
action-service-dao-po
一个模块(后台用户模块,后台管理员模块,前天界面模块)用一个action控制;
一个action(DispatchAction)调用多个service;
一个service调用多个Dao;
一个Dao对应一个po
但是实现后发现action 类的方法比较臃肿,如果一个功能对应一个action ,好像action类比较多。
问下在分大,中,小,型项目中,分层思想是怎样的,主要是前台页面、action、service、dao 四者之间的对应关系。。在网上找不到相关的内容,自己又想总结下,所以请教下大侠们。
你们采用action-service-dao-po的这种结构应该算是比较经典的结构吧.
po(pojo贫血模式)就是对数据库表及其关系的映射;
dao是对po的操作, 就是对数据库的crud等操作;
service层是写具体的业务逻辑的, 一般在这里调用dao. 看spring的书籍时一般会发现总会有service层出现. service层在Martin Fowler的一本书里面有介绍.
同ls, 一个功能调用一个action不是挺好的嘛
另: "一个action(DispatchAction)调用多个service", 那事务是在哪儿控制的?
Dony (初级程序员) 2009-06-18
struts就是这个样子,没办法,我曾经玩过一个struts的config文件,里面有几千个action,夸张吧,没办法,业务太复杂了
taga (初级程序员) 2009-06-18
我感觉加上Service层比较好,程序灵活性更好
feiyu311 (初级程序员) 2009-06-18
请参考一下这个比较经典的帖子吧
http://www.iteye.com/topic/17579
fengbaoxp (初级程序员) 2009-06-18
借宝地发个问题:
在一个EAR包中有两war包,那么能否在A.war中的利用Request.getRequestDispatcher将A的request和resepones转到B.war中的servlet或者是JSP中去处理呢?
danni505 (初级程序员) 2009-06-18
你把业务逻辑写在ACTION层里必然导致ACTION过于膨胀。
按你的说法:
action-service-dao-po
一个模块(后台用户模块,后台管理员模块,前天界面模块)用一个action控制;
一个action(DispatchAction)调用多个service;
一个service调用多个Dao;
一个Dao对应一个po
你这样,不管怎么分,你总会膨胀,也许是ACTION,也许是service。而你的DAO几乎又傻傻的把HIBERNATE又封装了一遍。
treblesoftware (初级程序员) 2009-06-18
IEstrutsActionServletActionspringmodeldaoHibernatedb
一般的开发架构是这样的,你可以好好看看!
vera_sq (初级程序员) 2009-06-19
事务当然控制在service层呀,你记住,一切逻辑功能(包括事务),都在service是编写.其实action里不是你想像的那么肿,你想想所有的逻辑功能都封在service里,action只是调就行了,充其量只能说action里的方法多点.但那有什么关系呢, 如果你觉的action里的方法太多了,你可以再根据功能再划分一些出去,都是可以的.
huangnetian (架构师) 2009-06-19
你们所用的这个组合算是经典的组合了,这个组合没有什么问题的。
其实不一定必须要一个功能就一个action的,一个action里面可以有多个方法的,比如有增删改查等等的方法,有两种实现的方法:
一,用if来判断,从页面里传一个参数过来,根据传过来的参数来判断进入到哪个功能方法中,不如传过来的是add,那你就让它进入到add的方法中。页面传的时候可以在.do后面加上?action=add这样传到action中,再根据 request.getParameter("action")取到参数,在action中判断 if(request.getParameter("action").equals("add"))就进入到add()方法中,从而来控制程序的跳转。不过我不建议用这个方法。
二,不要继承Action基类了,继承DisAction这个基类吧(好像是这个基类),继承它的话,它支持多个处理方法,只要在配置文件中配置一下method,然后从页面里传参数,.do?method=add,然后在你自己的action里面写add(HttpRequest request,HttpResponse response,......)这样的方法就行,我推荐这种方法。
如果这样做的话,就可以一个模块一个action了,一个功能对应一个action里面的一个方法。
tianyangqi (中级程序员) 2009-06-19
其实不用非得一个功能一个action,我在写SSH项目时,当功能都在一个action中能实现时,我通常通过继承DispatchAction来通过方法区分每次的功能,这样就不必写多个Action了
handonghandong (初级程序员) 2009-06-19
引用
一个action(DispatchAction)调用多个service;
一个action不应该调用多个service。你可能把业务逻辑写在action里。action通常只是验证参数是否正确,参数格式转换。 我个人觉的service与dao也不是一一对应的,service是面向功能模块来划分的,而dao是根据数据表来划分的
luckaway (初级程序员) 2009-06-19
1。action用来处理页面相关的东西,其他逻辑放到service中;action层也可以简化,你可以看看REST的东西,自己把action进行高度抽象。随着Ajax和REST的应用action会变的越来越薄的!
2。事务控制层次越高越好,放在action直接调用的service方法上;逻辑复杂时,service层中也需要更细的分层,这些层都为服务层
3。dao层,应该尽量弱化,因为spring、ibatis等实现了dao功能,可以直接在service调用他们提供的dao;事务不能放在这个层。扩展一下,现实中系统调用的资源(数据库、外部接口等)都会处于同一层,应该叫做资源层
还有一个非常重要的东西——模型,模型就是系统要处理的对象,形象一点,模型就是自然社会中的人,享受各种服务,资源,呈现各种形态
以上只是我的一点看法,系统设计的思维方式不同,系统划分的层次就不一样。
mojiedao (初级程序员) 2009-06-19
事务操作最好是在model层,或者是在service层中。
dao层主要负责的是连接DB做操作的,不要写在dao层,不便于以后系统的扩展!
具体舟事务层是写在model层,还是service就看你的系统大小和业务来决定了。
vera_sq (初级程序员) 2009-06-20
action那边只是实现的参数处理,执行顺序,结果处理
service层实现业务逻辑的具体内容,将最终结果返回给action。
至于你说的事务,当然放在service的方法中,如果service中的方法有什么错误就回滚事务,防止数据库中出现有问题的数据
zhoulei984623 (初级程序员) 2009-06-22
事务,一般都在Controller里控制
tinkingdzj (初级程序员) 2009-06-22
引用
IEstrutsActionServletActionspringmodeldaoHibernatedb
这个可真够强的!
lucky16 (初级程序员) 2009-06-24
事务是在service层管理的,可以使用DispacthAction,这样,这个
action里虽然有很多的方法,但是配置文件里的action里就会相对的少很多了。
linsongbin1 (初级程序员) 2009-06-24
其实你不要刻意去分层的 个人认为 ACTION中 有时候很难避免有service 代码的 MVC 也不是是那样完美 真的 有时候 一个很小的项目 MVC 纯是拖累
pzk417 (初级程序员) 2009-06-25
我也习惯楼主说的结构,导致我看人家把dao和sevice写到一起我看了难受。
renguistyle (初级程序员) 2009-06-25
action-service-dao-po
一个模块(后台用户模块,后台管理员模块,前天界面模块)用一个action控制;
一个action(DispatchAction)调用多个service;
一个service调用多个Dao;
一个Dao对应一个po
但是实现后发现action 类的方法比较臃肿,如果一个功能对应一个action ,好像action类比较多。
由于自己的java技术都是一路自学过来的,很少项目的经验。
问下在分大,中,小,型项目中,分层思想是怎样的,主要是前台页面、action、service、dao 四者之间的对应关系。。在网上找不到相关的内容,自己又想总结下,所以请教下大侠们。
问题补充
另: "一个action(DispatchAction)调用多个service", 那事务是在哪儿控制的?
事务控制可以在dao层配置 或者在service层 该可以吧
一个功能对应一个action不是很好吗,稍微大一点的系统不可能你一个人完成的哦。
不过我也讨厌它的配置文件。。
jiyanliang (初级程序员) 2009-06-18
zhxing 写道
本人在用ssh做项目的时候用的分层是
action-service-dao-po
一个模块(后台用户模块,后台管理员模块,前天界面模块)用一个action控制;
一个action(DispatchAction)调用多个service;
一个service调用多个Dao;
一个Dao对应一个po
但是实现后发现action 类的方法比较臃肿,如果一个功能对应一个action ,好像action类比较多。
问下在分大,中,小,型项目中,分层思想是怎样的,主要是前台页面、action、service、dao 四者之间的对应关系。。在网上找不到相关的内容,自己又想总结下,所以请教下大侠们。
你们采用action-service-dao-po的这种结构应该算是比较经典的结构吧.
po(pojo贫血模式)就是对数据库表及其关系的映射;
dao是对po的操作, 就是对数据库的crud等操作;
service层是写具体的业务逻辑的, 一般在这里调用dao. 看spring的书籍时一般会发现总会有service层出现. service层在Martin Fowler的一本书里面有介绍.
同ls, 一个功能调用一个action不是挺好的嘛
另: "一个action(DispatchAction)调用多个service", 那事务是在哪儿控制的?
Dony (初级程序员) 2009-06-18
struts就是这个样子,没办法,我曾经玩过一个struts的config文件,里面有几千个action,夸张吧,没办法,业务太复杂了
taga (初级程序员) 2009-06-18
我感觉加上Service层比较好,程序灵活性更好
feiyu311 (初级程序员) 2009-06-18
请参考一下这个比较经典的帖子吧
http://www.iteye.com/topic/17579
fengbaoxp (初级程序员) 2009-06-18
借宝地发个问题:
在一个EAR包中有两war包,那么能否在A.war中的利用Request.getRequestDispatcher将A的request和resepones转到B.war中的servlet或者是JSP中去处理呢?
danni505 (初级程序员) 2009-06-18
你把业务逻辑写在ACTION层里必然导致ACTION过于膨胀。
按你的说法:
action-service-dao-po
一个模块(后台用户模块,后台管理员模块,前天界面模块)用一个action控制;
一个action(DispatchAction)调用多个service;
一个service调用多个Dao;
一个Dao对应一个po
你这样,不管怎么分,你总会膨胀,也许是ACTION,也许是service。而你的DAO几乎又傻傻的把HIBERNATE又封装了一遍。
treblesoftware (初级程序员) 2009-06-18
IEstrutsActionServletActionspringmodeldaoHibernatedb
一般的开发架构是这样的,你可以好好看看!
vera_sq (初级程序员) 2009-06-19
事务当然控制在service层呀,你记住,一切逻辑功能(包括事务),都在service是编写.其实action里不是你想像的那么肿,你想想所有的逻辑功能都封在service里,action只是调就行了,充其量只能说action里的方法多点.但那有什么关系呢, 如果你觉的action里的方法太多了,你可以再根据功能再划分一些出去,都是可以的.
huangnetian (架构师) 2009-06-19
你们所用的这个组合算是经典的组合了,这个组合没有什么问题的。
其实不一定必须要一个功能就一个action的,一个action里面可以有多个方法的,比如有增删改查等等的方法,有两种实现的方法:
一,用if来判断,从页面里传一个参数过来,根据传过来的参数来判断进入到哪个功能方法中,不如传过来的是add,那你就让它进入到add的方法中。页面传的时候可以在.do后面加上?action=add这样传到action中,再根据 request.getParameter("action")取到参数,在action中判断 if(request.getParameter("action").equals("add"))就进入到add()方法中,从而来控制程序的跳转。不过我不建议用这个方法。
二,不要继承Action基类了,继承DisAction这个基类吧(好像是这个基类),继承它的话,它支持多个处理方法,只要在配置文件中配置一下method,然后从页面里传参数,.do?method=add,然后在你自己的action里面写add(HttpRequest request,HttpResponse response,......)这样的方法就行,我推荐这种方法。
如果这样做的话,就可以一个模块一个action了,一个功能对应一个action里面的一个方法。
tianyangqi (中级程序员) 2009-06-19
其实不用非得一个功能一个action,我在写SSH项目时,当功能都在一个action中能实现时,我通常通过继承DispatchAction来通过方法区分每次的功能,这样就不必写多个Action了
handonghandong (初级程序员) 2009-06-19
引用
一个action(DispatchAction)调用多个service;
一个action不应该调用多个service。你可能把业务逻辑写在action里。action通常只是验证参数是否正确,参数格式转换。 我个人觉的service与dao也不是一一对应的,service是面向功能模块来划分的,而dao是根据数据表来划分的
luckaway (初级程序员) 2009-06-19
1。action用来处理页面相关的东西,其他逻辑放到service中;action层也可以简化,你可以看看REST的东西,自己把action进行高度抽象。随着Ajax和REST的应用action会变的越来越薄的!
2。事务控制层次越高越好,放在action直接调用的service方法上;逻辑复杂时,service层中也需要更细的分层,这些层都为服务层
3。dao层,应该尽量弱化,因为spring、ibatis等实现了dao功能,可以直接在service调用他们提供的dao;事务不能放在这个层。扩展一下,现实中系统调用的资源(数据库、外部接口等)都会处于同一层,应该叫做资源层
还有一个非常重要的东西——模型,模型就是系统要处理的对象,形象一点,模型就是自然社会中的人,享受各种服务,资源,呈现各种形态
以上只是我的一点看法,系统设计的思维方式不同,系统划分的层次就不一样。
mojiedao (初级程序员) 2009-06-19
事务操作最好是在model层,或者是在service层中。
dao层主要负责的是连接DB做操作的,不要写在dao层,不便于以后系统的扩展!
具体舟事务层是写在model层,还是service就看你的系统大小和业务来决定了。
vera_sq (初级程序员) 2009-06-20
action那边只是实现的参数处理,执行顺序,结果处理
service层实现业务逻辑的具体内容,将最终结果返回给action。
至于你说的事务,当然放在service的方法中,如果service中的方法有什么错误就回滚事务,防止数据库中出现有问题的数据
zhoulei984623 (初级程序员) 2009-06-22
事务,一般都在Controller里控制
tinkingdzj (初级程序员) 2009-06-22
引用
IEstrutsActionServletActionspringmodeldaoHibernatedb
这个可真够强的!
lucky16 (初级程序员) 2009-06-24
事务是在service层管理的,可以使用DispacthAction,这样,这个
action里虽然有很多的方法,但是配置文件里的action里就会相对的少很多了。
linsongbin1 (初级程序员) 2009-06-24
其实你不要刻意去分层的 个人认为 ACTION中 有时候很难避免有service 代码的 MVC 也不是是那样完美 真的 有时候 一个很小的项目 MVC 纯是拖累
pzk417 (初级程序员) 2009-06-25
我也习惯楼主说的结构,导致我看人家把dao和sevice写到一起我看了难受。
renguistyle (初级程序员) 2009-06-25
发表评论
-
Servlet上传文件
2012-02-07 23:58 1492准备工作:要到http://commons.apache.or ... -
成为Java高手需要达到的25个学习目标--经典
2012-01-29 16:07 1349本文将告诉你学习Java需 ... -
Timer, Quartz 和 Spring 实现作业调度
2011-11-28 15:43 1174一、java.util.Timer ... -
Java 产生不重复的随机数
2011-06-22 23:32 2359int numberCount = 6; ... -
Date类学习总结(Calendar Date 字符串 相互转换 格式化)
2011-06-20 16:12 1662Date类学习总结 1.计算某一月份的最大天数 ... -
jsp中的cookie用法小实例
2011-06-20 00:13 2491这个小实例有三个页面 index.jsp页面内容如下: Y ... -
JS实现简单的增删改查
2011-06-19 23:41 12962<%@ page language="ja ... -
Jsp 动态显示系统时间
2011-06-19 23:24 4899<%@ page language=" ... -
java 动态显示时间
2011-06-19 23:13 4058import java.util.Date; p ... -
js 动态显示时间
2011-06-19 22:53 1831<%@ page language=" ... -
HTML 显示系统时间
2011-06-19 22:13 7887代码1:(显示静态时间) <script type=& ... -
JavaScript 动态显示系统时间
2011-06-19 19:36 2080JavaScript 动态显示系统时间 <html ... -
两例JavaScript 获取当前系统日期和时间
2011-06-19 19:20 1252两例JavaScript 获取当前系统日期和时间 QUOTE ... -
java五种JSP页面跳转方法详解
2011-06-19 17:08 14761. RequestDispatcher.forward() ... -
Java Object方法
2011-06-19 16:47 1353package com.abin.test.connectio ... -
Java 数组,List,Itarator循环
2011-06-19 16:01 2303package com.abin.test.connect ... -
JAVA DBClass操作数据库,这样算不算单列模式
2011-06-19 14:53 1254到底怎样才算单列模式,单列模式事什么概念 package c ... -
Oracle日期函数集锦
2011-06-16 20:55 929Oracle日期函数集锦(一) 一、 常用日期数据格式 1 ... -
java 页面传送数组
2011-06-15 14:56 25951.可以通过嵌入java代码调用session或者reques ... -
java Calendar当前时间
2011-06-14 13:40 1663Calendar c = Calendar.getIn ...
相关推荐
本文将深入探讨J2EE的相关知识点,包括其核心概念、主要组件、优点以及在实际应用中的挑战。 **一、J2EE的核心概念** 1. **多层架构**:J2EE支持经典的三层架构,即表示层、业务逻辑层和数据访问层。这种分层设计...
这种分层设计有助于实现职责分离,提高代码的可重用性和可维护性。 2. **组件模型**:J2EE提供了多种类型的组件,如Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)。Servlet用于处理HTTP请求,JSP...
在J2EE实例中,你会接触到诸如Web层、业务逻辑层(Service层)和数据访问层(DAO层)的分层架构设计。Web层通常由Servlet和JSP组成,负责接收用户请求并返回响应;业务逻辑层处理业务规则和计算,常通过JavaBean或...
而不是从数据库的表出发,创建DAO,再创Domain,然后Service,这实际上是对系统分层的误解。 4、系统最核心的设计就是将系统中的实体划分为领域模型。在此基础上设计数据的DAO层,并将这些活动暴露给服务层,服务层...
本文将深入探讨软件体系架构模式在J2EE(Java 2 Platform, Enterprise Edition)环境中的应用,帮助开发者理解和运用这些模式来创建高效、可扩展的企业级应用。 首先,我们了解下什么是J2EE。J2EE是Java平台的一个...
在深入分析《论文研究-管道、过滤器和MVC软件体系模式在J2EE中的应用.pdf》这篇文章之前,需要先理解几个核心概念:软件体系构架、管道和过滤器以及MVC模式。 软件体系构架(Software Architecture)是指软件系统的...
在IT领域,特别是软件开发行业中,Java 2 Platform, Enterprise Edition(简称J2EE)是一个极为重要的技术框架,专门用于构建可扩展、健壮的企业级Web应用。《Designing Enterprise Applications with the Java 2 ...
J2EE平台的核心在于它的分层架构,包括以下主要层次: 1. **客户端层**:用户通过浏览器或桌面应用与系统交互。J2EE支持Java Applet和JavaFX等技术来创建客户端。 2. **Web层**:处理HTTP请求,负责显示静态和动态...
理解J2EE的分层架构(如表现层、业务逻辑层、数据访问层)是必备的基础,同时熟悉Spring、Hibernate、MyBatis等框架的应用也是重要的考察点。 面试技术题则更注重实践能力。面试官可能会询问你关于JNDI服务、JMS...
在本书中,你会了解到J2EE架构设计的基本原则,包括分层架构、模块化设计、服务化思想等。分层架构通常包括表现层、业务逻辑层和数据访问层,每一层都有其特定的职责,以实现松耦合和高内聚。模块化设计则允许代码按...
在JSP 中,sql 标签不符合分层原则,sql 语句应封装在JavaBean 或者EJB 中。控制共享资源的并发访问,需要用到Java 关键字synchronized。 session 的标志符可能存放在cookie 和URL 中。在JSP 中, tag 文件中,用...
J2EE 概述中包含以下几个关键部分: 1. **J2EE 架构**:J2EE 平台基于组件模型,分为多个层次,包括客户端层、Web 层、业务逻辑层(也称为企业 Bean 层)和数据访问层。这种分层设计有助于代码复用、模块化开发以及...
J2EE架构基于分层模型,通常包括以下层次: 1. **客户端层**:用户通过浏览器或桌面应用程序与系统交互。 2. **Web层**:包含Servlet和JSP(JavaServer Pages),负责处理HTTP请求,动态生成HTML页面。 3. **业务...
- **系统架构设计**:描述了MVC如何在J2EE架构中被组织和分层,以及如何利用J2EE组件如Servlet、JSP和EJB来实现各部分。 - **组件间的交互**:详细解释了模型、视图和控制器之间的通信机制,包括请求处理流程、...
J2ee Struts,Spring Framework,Hibernate 经典结合,项目源码。控制层、数据层、业务层分层 架构经典搭配,学习、研究的好东西。
EJB是J2EE中用于业务逻辑处理的服务器端组件,分为Session Beans(会话Bean)和Entity Beans(实体Bean)。Session Beans负责处理短暂的业务逻辑,而Entity Beans则与数据库中的持久数据进行交互。此外,Message-...
#### 二、J2EE架构分层 J2EE架构被划分为五层: 1. **客户层**:负责客户端与应用的交互,主要由浏览器等客户端工具组成。 2. **表示层**:处理用户界面逻辑,包括接收客户端请求、处理会话及向客户端发送响应。 3...
J2EE 规范的核心思想是将应用程序分层,包括客户层、Web 层、业务逻辑层和企业信息系统层,每个层次都有其特定的组件和接口。J2EE 规范的主要目的是为了解决传统的两层模式(client/server)的弊端,提高应用程序的...
1. **分层架构模式**:J2EE应用通常采用三层架构,包括表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。表现层负责与用户交互,业务逻辑层处理业务规则,数据...