文章目录
1 软件体系结构
1.1 分层结构
分层结构将系统拆分为垂直层级(如表现层、业务层、数据层),每层职责单一,上层调用下层,禁止跨层访问。优势是解耦、易维护,但多层通信可能降低性能。典型如三层架构。
1.2 C/S、B/S
C/S:
客户端-服务器(C/S)将系统分为两个角色:
- 客户端:请求服务(如界面交互),
- 服务器:提供核心功能与数据管理。
通过请求-响应模式通信(如浏览器访问网站),优势是资源集中管理、易扩展,但依赖网络且服务器可能成为瓶颈。典型如Web应用、在线服务。
三层C/S:
客户端-服务器三层架构将系统分为:
- 客户端层(表现层):处理用户交互(如UI)。
- 应用服务器层(业务逻辑层):执行业务规则与核心逻辑。
- 数据库服务器层(数据层):负责数据存储与访问。
特点:
- 层间通过网络通信,职责分离(如客户端专注交互,服务器处理逻辑与数据)。
- 优势:易扩展、安全性高、维护独立;
- 缺点:网络延迟、部署复杂度增加。
典型场景:Web应用(浏览器-Web服务器-数据库)。
B/S:
B/S架构(Browser/Server):
浏览器作为统一客户端,服务端集中处理业务与数据;
无需安装,通过HTTP协议通信,跨平台访问(如网页应用);
升级维护仅需更新服务端,但依赖网络与浏览器性能。
典型场景:Web邮箱、在线办公系统。
1.3 MVC
MVC(模型-视图-控制器)将应用分为:
- 模型(Model):管理数据与业务逻辑;
- 视图(View):处理界面显示(如UI/网页);
- 控制器(Controller):接收用户输入,协调模型与视图更新。
核心:职责分离,数据与界面解耦,提升可维护性,常用于Web框架(如Spring MVC)。
1.4 微服务
微服务将系统拆分为小型独立服务,每个服务专注单一业务功能,通过API或消息中间件通信。支持独立开发、部署、扩展,技术栈灵活,适合快速迭代和云环境,但需管理分布式复杂度(如监控、事务)。典型如电商拆分为订单、支付、库存等服务。
1.5 SOA
将系统拆分为独立服务(如订单、支付服务),通过标准化协议(如Web服务)通信,服务松散耦合、可复用,强调整合与跨系统协作,适合企业级复杂业务集成。但设计和管理成本较高。
1.6 管道-过滤器
将数据处理拆分为独立过滤器(处理单元),通过单向管道串联,数据按流式传递。核心是模块化、可复用(如编译器流水线)。优势是高灵活性、易扩展,但不适合强交互或状态依赖的场景。
1.7 单体架构
单体架构将所有功能集中在一个应用中,代码紧密耦合,统一部署维护。优点是开发简单、部署快,但扩展性差,复杂度上升后易出现维护困难。常见于小型项目或早期系统。
2 中间件
2.1 简介
1、中间件是系统软件和应用软件之间连接的软件、以便于软件各部件之间的沟通
2、是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关服务的软件
3、中间件不仅试下互联,还要实现应用之间的互操作
2.2 常见中间件
nacos
3 XML
4 主流软件开发技术
Spring框架
Spring框架是一个全面的解决方案,提供了依赖注入、面向切面编程等功能,极大地简化了企业级应用的开发。它的核心是IoC(控制反转)容器,负责管理应用程序中的对象,通过依赖注入将对象组装起来。Spring MVC是基于Spring的Web框架,采用MVC(Model-View-Controller)架构模式,提供了丰富的注解支持、数据绑定、表单处理等功能
Spring Boot框架
Spring Boot是在Spring的基础上构建的,它通过自动化配置和快速启动,使得开发者能够更快速地搭建和部署应用程序。Spring Boot的目录结构清晰,包含了控制器层、实体类、DAO层、服务类等,以及Spring Boot配置文件、静态文件目录和模板文件目录
Hibernate框架
Hibernate框架为数据持久化提供了便捷的解决方案,它将对象与数据库表映射起来,使得开发者可以使用面向对象的思维来处理数据库操作。Hibernate支持对象关系映射、Hibernate查询语言(HQL)、缓存机制以及事务管理
MyBatis框架
MyBatis是一个优秀的持久层框架,它通过XML或注解的方式将Java方法映射到SQL查询,提供了丰富的操作数据库的方式。MyBatis支持动态SQL、延迟加载、存储过程调用等特性,适用于需要对SQL进行精细控制的场景