常用的项目架构方法

常用的项目架构方法

  • 常用的项目架构方法
    • 一、MVC架构
    • 二、COLA架构
    • 三、分层架构

常用的项目架构方法

大部分开发对项目架构都不会陌生,有过几年开发经验的同学更是深有体会,在这里分享我曾使用过的3套项目架构,并且谈一谈其中的优劣。

一、MVC架构

MVC模式三要素:

  1. 视图 View:页面渲染、数据展示
  2. 模型 Model:业务逻辑、数据库操作
  3. 控制器 Controller:接收请求、视图跳转

流程图如下:
常用的项目架构方法_第1张图片

不过现在通常使用Spring作为开发框架,SpringMVC可以理解为一个MVC模式的实现,流程图如下:

常用的项目架构方法_第2张图片
MVC项目简易结构如下:

  1. model模块
	com.demo.model
		vo #页面数据对象
		mybatis
			config #mybatis相关配置
			entity #实体类
			mapper #mybatis接口
	resources
		mappers #mybatis xml文件
  1. service模块
	com.demo.service #业务逻辑接口
		impl # 业务逻辑类
  1. web模块
	com.demo.web # 启动类
		contrller # controller类

二、COLA架构

COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”。作者是CSDN博主张建飞(Frank),博客上详细的内容,在此就不介绍了。

说一下使用感受:概念清晰、层次分明、有点复杂,懒人用起来会比较费劲,适合有追求的团队

参考地址:CSDN地址 、GitHub地址

三、分层架构

这是《阿里巴巴Java开发手册》推荐的分层架构,也是我推荐使用的架构,特别适合微服务项目分层,架构图如下:
常用的项目架构方法_第3张图片

  • 开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行网关安 全控制、流量控制等。
  • 终端显示层:各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移
    动端展示等
  • Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。
  • Service 层:相对具体的业务逻辑服务层。
  • Manager 层:通用业务处理层,它有如下特征:
    1)对第三方平台封装的层,预处理返回结果及转化异常信息。
    2)对 Service 层通用能力的下沉,如缓存方案、中间件通用处理。
    3)与 DAO层交互,对多个 DAO 的组合复用。
  • DAO 层:数据访问层,与底层 MySQL、Oracle、Hbase 等进行数据交互。
  • 外部接口或第三方平台:包括其它部门 RPC 开放接口,基础平台,其它公司的 HTTP 接口。

分层架构简易目录如下:

  1. api模块
	com.demo.api # RPC接口
		model # RPC接口返回对象
  1. dao模块
	com.demo.dao # RPC接口
		do # 数据库实体类
		mapper # mapper接口
		vo # 页面视图实体
  1. manager模块
	com.demo.manager
		cache # 缓存
		mq # 消息队列
		oss # 对象存储
		sms # 短信
		email # 邮箱
  1. service模块
	com.demo.service
		impl # 业务逻辑类
  1. web模块
	com.demo.web
		controller # http接口
		rpc # rpc接口类

你可能感兴趣的:(java,项目架构)