三层结构简介

本文介绍了新兴的Browser/Server体系结构,它是三层Client/Server结构在Web上应用的特例。该结构将表示层、功能层和数据层分离,减轻了客户机压力。与传统Client/Server体系结构相比,它具有开放标准、低成本、易使用等优势,是技术发展趋势。

   随着Internet越来越广泛的应用,原来基于局域网的企业网开始采用Internet技术构筑和改建自己的企业网,即Intranet。于是,一种新兴的体系结构Browser/Server应运而生,并获得飞速发展,成为众多厂家争相采用的新型体系结构。本质上,Browser/Server也是一种Client/Server结构,它是一种由传统的二层Client/Server结构发展而来的三层Client/Server结构在Web上应用的特例。
   在Browser/Server的系统中,用户可以通过浏览器向分布在网络上的许多服务器发出请求。Browser/Server结构极大的简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可, 服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。
在Browser/Server三层体系结构下,表示层(Presentatioon)、功能层(Business Logic)、数据层(Data Service)被割成三个相对独立的单元:

   第一层

  表示层:Web浏览器
   在表示层中包含系统的显示逻辑,位于客户端。它的任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。 
 

   第二层

   功能层:具有应用程序扩展功能的Web服务器
   在功能层中包含系统的事务处理逻辑,位于Web服务器端。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,而后等数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。 
 

    第三层

   数据层:数据库服务器
    在数据层中包含系统的数据处理逻辑,位于数据库服务器端。它的任务是接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新等功能,把运行结果提交给Web服务器。
仔细分析不难看出,三层的Browser/Server体系结构是把二层Client/Server结构的事务处理逻辑模块从客户机的任务中分离出来,由单独组成的一层来负担其任务,这样客户机的压力大大减轻了,把负荷均衡地分配给了Web服务器,于是由原来的两层的Client/server结构转变成三层的Browser/Server结构。这种三层体系结构如下图所示。
这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子"苗条"了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构层与层之间相互独立,任何一层的改变不影响其它层的功能。它从根本上改变了传统的二层Client/Server体系结构的缺陷,它是应用系统体系结构中一次深刻的变革。
两种体系结构的对比
Browser/Server体系结构与Client/Server体系结构相比不仅具有Client/Server体系结构的全部优点,而且又有Clinet/Server体系结构所不具备的独特优势:
开放的标准:
Client/Server所采用的标准只要在内部统一就可,它的应用往往是专用的。Browser/Server所采用的标准都是开放的、非专用的,是经过标准化组织所确定的而非单一厂商所制定,保证了其应用的通用性和跨平台性。
较低的开发和维护成本:
Client/Server的应用必须开发出专用的客户端软件,无论是安装、配置还是升级都需要在所有的客户机上实施,极大地浪费了人力和物力。Browser/Server的应用只需在客户端装有通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。
使用简单,界面友好:
Client/Server用户的界面是由客户端软件所决定的,其使用的方法和界面各不相同,每推广一个Client/Server系统都要求用户从头学起,难以使用。Browser/Server用户的界面都统一在浏览器上,浏览器易于使用、界面友好,不须再学习使用其它的软件,一劳永逸的解决了用户的使用问题。
客户端消肿:
Client/Server的客户端具有显示与处理数据的功能,对客户端的要求很高,是一个"胖"客户机。Browser/Server的客户端不再负责数据库的存取和复杂数据计算的等任务,只需要其进行显示,充分发挥了服务器的强大作用,这样就大大的降低了对客户端的要求,客户端变得非常"瘦"。
系统灵活:
Client/Server系统的三部分模块中有一部分需改变就要关联到其它模块的变动,使系统极难升级。Browser/Server系统的三部分模块各自相对独立,其中一部分模块改变时其它模块不受影响,系统改进变得非常容易,且可以用不同厂家的产品来组成性能更佳的系统。
保障系统的安全性:
在Client/Server系统中由于客户机直接与数据库服务器进行连接,用户可以很轻易的改变服务器上的数据,无法保证系统的安全性。Browser/Server系统在客户机与数据库服务器之间增加了一层Web服务器,使两者不再直接相连,客户机无法直接对数据库操纵,有效地防止用户的非法入侵。
三层的Browser/Server体系结构具有许多传统Client/Server体系结构不具备的优点,而且又紧密的结合了Internet/Intranet技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代

### Spring Boot 三层架构设计与实现简介 #### 1. **Spring Boot 三层架构概述** Spring Boot 的三层架构是一种常见的软件设计模式,旨在通过分离关注点来提升项目的可维护性扩展性。这种架构将应用程序分为三个主要次:控制(Controller)、服务(Service)以及持久(Repository/DAO)。每一都有其特定的功能职责[^1]。 - **控制(Controller)** 控制负责接收客户端请求并返回响应数据。它通常作为系统的入口点,处理 HTTP 请求并将业务逻辑委派给服务。在 Spring Boot 中,这一常使用 `@RestController` 或 `@Controller` 注解标记控制器类。 - **服务(Service)** 服务是核心业务逻辑所在的地方。该封装了具体的业务操作流程,并协调其他组件完成任务。它是连接控制持久的关键桥梁,在此可以执行复杂的事务管理、校验规则以及其他业务需求[^2]。 - **持久(Repository/DAO)** 持久专注于数据库交互,提供对实体对象的增删改查功能。在 Spring Boot 应用程序中,开发者可以通过定义接口继承自 `JpaRepository` 或者利用 MyBatis 等工具来自动生成 SQL 查询语句[^3]。 #### 2. **为何采用 Spring Boot 三层架构?** 采用三层架构的主要目的是为了增强代码质量与灵活性: - 提高模块化程度,减少各部分之间的依赖关系; - 增强代码重用率,便于后续升级维护工作开展; - 明确划分不同职能区域,有助于团队协作开发效率提升; 这些优势使得基于 Spring Boot 构建的企业级解决方案更加强大可靠[^2]。 #### 3. **实际案例分析——如何设置 DAO 扫描路径** 当构建一个完整的 Spring Boot 工程时,如果涉及到 MyBatis 数据访问技术,则需要注意正确配置 Mapper 接口所在的包位置。这是因为默认情况下 Spring 不会自动识别未标注任何特殊注释的 Repository 类型文件夹下的内容。因此需要借助于额外声明方式告知框架具体查找范围。例如下面这段代码展示了怎样在一个主应用程序启动类里指定 mappers 所属命名空间以便顺利完成初始化过程[^3]: ```java package com.example.demo; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.example.demo.mapper") // 设置MyBatis mapper接口的位置 public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 以上示例说明了即使是在高度自动化配置环境之下仍然可能存在某些特殊情况需手动干预才能达到预期效果的情况之一。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值