Java Web实践专题——应用分层

【架构设计】你的应用该如何分层呢? 最近review公司的代码,发现现在整个代码层级十分混乱,一个service类的长度甚至达到了5000多行。而且各种分层模型DTO、VO乱用, 最终出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就牵一发而动全身等问题。我们在吸取了阿里巴巴的分层规范以及网上的一些经验后,重新梳理总结了属于我们项目的分层规范。 阅读详情
 
独立程序
例如:Word Excel
特点:
优点:速度比较快,不受其他环境的影响。
缺点:需要安转专门的程序、更新比较麻烦、功能共享比较困难、数据无法共享。
C/S结构
C表示Client,客户端程序;
S表示Server,服务器端程序;
典型的例子:服务器端只有数据库(共享数据)、QQ应用(功能分别在两台机器上完成,对于每一台机器来说,有时候是客户端,有时候是服务器端)
特点:客户端仍然需要安装单独的应用,服务器端可能是应用也可能是数据库。有的仅仅共享数据,有的会共享功能。
B/S结构
B是Browser,浏览器。S表示Server,是服务器。
特点:不需要专门的客户端程序,只需要通用的浏览器作为客户端。如果要维护程序,只需要在服务器端进行即可。
多层结构
多层结构不仅仅是指Web应用,但是我们以Web应用为例介绍,客户端程序与Web应用的区别主要是IO上的区别。
第一种:表示层(IO)   业务层(功能)   数据层(数据)
第二种:表示层(IO)控制层 业务层(功能)   数据层(数据)
第三种:表示层(IO)控制层 业务层(功能)数据访问层 数据层(数据)
第三种形式现在比较流行,又分为Sun公司的标准和流行组合,下面分别举例描述:
例1:Java的官方标准
表示层:JSP+EL+JSTL
控制层:Servlet
业务层:会话Bean+JavaBean
数据访问层:JPA+实体Bean(BMP+CMP)
数据层:DBMS
例2:流行的组合(Struts+Hibernate)
表示层:JSP+Struts的标签库+FormBean(用于传值,属于JavaBean,但功能主要是标单数据相关,所以划分表示层)
控制层:Struts的中心控制器Servlet+Action+struts-config.xml
业务层:JavaBean
数据访问层:Hibernate
数据层:DBMS
MVC模式
MVC模式非常流行,与上面的分层有什么关系呢?
实际上,在上面的分层中加入了控制层,隐含的就是采用了MVC模式。在MVC模式中,业务层和访问控制层都属于模型部分。
注:
JPA是Java Persistence API,持久性。封装对数据库的访问。EJB3中提出的。
EJB2中使用CMP和BMP。(Container Managed Persistence,Bean-Managed Persistence)
Hibernate也是用于封装对数据库的访问,称为O/R映射工具。
 
Web开发中的分层解耦 在现代Web开发中,分层解耦是一种常见的架构设计模式,它将Web应用程序分成多个独立的层次,每一层专注于一个特定的功能模块。通过解耦各层之间的关系,可以提升代码的可维护性、可扩展性、可测试性和可重用性。本文将详细介绍如何在Web开发中实现分层解耦,主要通过Java技术栈来实现分层架构,具体包括以下几个部分:分层架构简介分层架构的实现Java代码实现示例分层架构通常包括以下几个主要层次:表示层(Web层):负责与用户交互,展示数据,并接收用户的请求。业务逻辑层(Service层):处理业务逻辑,调用数据访问层 阅读详情

相关推荐

Web应用分层与设计模式实践

本文探讨Web应用的分层架构,指出Web层负责处理客户端请求与业务逻辑交互。介绍了外观模式在API中的应用,如HttpSession接口和洗衣机类示例。提供了图书馆缓存设计,支持按ISBN、作者和类别检索。讨论了服务类注入多数据源的重构策略,包括使用限定符。列举Java中观察者模式的多种实现方式,并给出了电影订单DAO的接口与JPA实现。

k9l0m1的博客 767

应用分层

应用分层 **开放接口层:**可直接封装 Service 接口暴露成 RPC 接口;通过 Web 封装成 http 接口;网关控制层等。 **终端显示层:**各个端的模板渲染并执行显示层。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移动端展示层等。 Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。 **Service 层:**相对具体的业务...

千里之行,始于足下 1449

Java项目如何分层

在现在的Java项目中的项目分层,大多数都是简单的Controller、Service、Dao三层,看起来非常简单。但是,随着代码越写越多,写久了以后,渐渐发现其实并没有把他们真正的职责...

yipiankongbai的专栏 2433

应用分层介绍

应用分层指的是将一个应用程序分解为不同的层级,每个层级负责不同的功能。这种分层的方法有助于提高代码的可维护性、可扩展性和可重用性,同时也使团队更容易协作开发。

2303_78892316的博客 639

Java Spring MVC分层设计

Java Spring开发,Controller, Service, DAO, Entity分层设计及代码实现。

Chris Mao的专栏 2万+

Spring web应分层(模块结构)

大家好我是小帅,今天我们来学习web开发的应用分层。

m0_66323401的博客 1025

应用分层, 系统各部分得以独立发展,更加灵活、可扩展和易维护

应用封层是一种常见的软件设计模式,将整个应用程序分解成若干个层次结构,并将每个层次结构分配特定的职责。常见的分层结构包括DAO层、Service层、Manager层、Web层和开放接口层等。

洪晓鸿 618

C++控制台实现简单的注册登录

C++控制台实现简单的注册登录 #include<iostream> #include<string> #include <vector> #include <conio.h> void Display();//调用display显示switch()界面 void Register();//注册 void Enter();//登录 using nam...

乔路非 2万+

关于对java项目中应用分层的简单理解

对java项目中应用分层的简单理解

E_Possible的博客 1198

ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)

萌新常用的都在这了,本萌新的模板集。

张天枭の博客 5万+

基于GEC6818开发板的C/C++贪吃蛇小游戏

f.开始游戏(进入游戏,并没有马上开游戏,需要点击播放才能开始)2.相关宏,全局变量(可以根据自己需要进行修改)k.显示文字前的相关初始化。k.自定义font.h文件。1.需要的主要头文件。l.在开发板上显示字1。m.在开发板上显示字2。a.显示固定大小图片。h.线程1:获得坐标。

2301_77273301的博客 2133

Java Web应用的代码分层最佳实践。

代码分层,对于任何一个Java Web开发来说应该都不陌生。一个好的层次划分不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,更加有利于后期的维护和升级。 从另外一个角度来看,好的代码分层架构,应该是可以很好的匹配上单一职责原则的。这样就可以降低层与层之间的依赖,还能最大程度的复用各层的逻辑。本文就来介绍下Java Web项目的代码到底应该如何分层。 三层架构 在软件体...

1762

操作系统原理:【优麒麟】linux内核添加系统调用

在底端添加如下代码。

Joyce_zz的博客 2712

Web应用分层最佳实践

BO(Business Object): 业务对象, 可以由 Service 层输出的封装业务逻辑的对象。DO(Data Object): 此对象与数据库表结构一一对应, 通过 DAO 层向上传输数据源对象。web: 主要是对访问控制进行转发, 各类基本参数校验, 或者不复用的业务简单处理等,应用配置。VO(View Object): 显示层对象, 通常是 Web 向模板渲染引擎层传输的对象。service: 相对具体的业务逻辑服务层,以及rpc接口的实现层。第三方接口的封装,放在manager层。

bruce128的专栏 694

【存储原理】IO超时处理 块层block-scsi层之间

【存储原理】IO超时处理 块层block-scsi层之间

sinat_37817094的博客 1025

工商银行软件开发中心数据安全监测溯源防护体系建设成果及展望

结合业界先进溯源理念和我行管理要求,依托大数据、分布式搜索分析引擎等技术,构建PB级海量数据加工分析和小时级快速核验、检索、溯源手段(如图6所示),支撑6种客户敏感信息关键要素的单一或组合溯源,形成行之有效的数据安全溯源流程,配套落地自动化快速泄露样本真实性核验和灵活高效的溯源能力,通过数据相关属性的自动化分析,实现追踪泄露源头、明确泄露路径的目标,为有效应对数据安全事件,降低和消除风险与不良影响,开展事后追责处置工作提供体系化解决方案。提高数据排查的自动化程度和排查效率,降低人工成本。

银行信息系统应用架构详解 226

Java Web应用的代码分层最佳实践

代码分层,对于任何一个Java Web开发来说应该都不陌生。一个好的层次划分不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,更加有利于后期的维护和升级。 从另外一个角度来看,好的代码分层架构,应该是可以很好的匹配上单一职责原则的。这样就可以降低层与层之间的依赖,还能最大程度的复用各层的逻辑。本文就来介绍下Java Web项目的代码到底应该如何分层。 三层架构 在软件体系架...

weixin_44476888的博客 187

【unity游戏开发入门到精通——UGUI】文本控件 —— TextetMeshPro新文本控件(TextMeshPro - Text(UI)和TextMeshPro - Text)

文本组件是UGUI中最常用的组件,它的作用是对文本数据进行处理并显示。UGUI的文本组件可以分两为种——Text旧文本控件、TextMeshPro新文本组件。本文主要是介绍TextMeshPro新文本控件,而TextMeshPro新文本控件又可以分为两种——TextMeshPro - Text(UI)和TextMeshPro - Text。TextMeshPro是Unity收购的一个第三方插件,现在已经自动内置到编辑器中,只要使用一次就会自动导入到工程。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3768

Web应用分层及其各层职责

应用层 许多设计良好的web应用,可以被按职责分为四层。这些层次是表现层、持久层、业务层、和领域模型层。每一个层次都有其独特的职责,不能把各自的功能与其它层次相混合。每一个应用层都应该和其它层隔离开来,但允许使用接口在层间进行通信。我们开始来看看每个层,并讨论一下它们各自都应该提供什么和不应该提供什么。 表现层 一个典型的web 应用的末端是表现层。许多Java ...

noia_zhou 3727

大数据知识面试题-通用(2026版)

序列号 内容 链接 1 大数据知识面试题-通用(2022版) 待续… 2 大数据知识面试题-Hadoop(2022版) 待续… 3 大数据知识面试题-MapReduce和yarn(2022版) 待续… 4 大数据知识面试题-Zookeepr (2022版) 待续… 5 大数据知识面试题-Hive (2022版) 待续… 6 大数据知识面试题-Flume(2022版) 待续… 7 大数据知识面试题-Hbase(2022版) 待续… 8 大数据知识面试题-sqoop(....

拉格朗日的学习笔记 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java分层开发详解

分层开发是一种软件架构设计方法,它将应用程序划分为不同的层次,每一层都有其特定的职责和功能。通过分层,可以实现关注点分离,提高代码的可维护性、可扩展性和可测试性。表现层(Presentation Layer):负责与用户交互,如Web页面、REST API等业务逻辑层(Business Logic Layer):包含应用程序的业务规则和流程数据访问层(Data Access Layer):负责与数据库交互数据持久层(Persistence Layer):负责数据的持久化。

yk_dflkg的博客 2177

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: Java Web实践专题——信息显示
下一篇: Java Web实践专题——Log4j
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值