首页 - 经济 > javaweb项目(JavaWeb项目,你们一般都是怎么设计代码分层的)

javaweb项目(JavaWeb项目,你们一般都是怎么设计代码分层的)

发布于:2024-03-22 20:16:01 来源:互联网

我现在负责的项目,并没有遵守什么外部严格的代码分层规范,因为项目的架子都是我一个人搭建的,所以很多地方都是以个人的经验做的设计,甚至有些地方掺杂了一些个人的喜好。下面我大概介绍一下,有不赞同的地方,可以留言讨论。

分包

在说单个项目的代码分层之前,先说一下代码的分包。

我们公司现在面临着比较尴尬的问题,一方面新的项目部再是只有一个代码包,希望走微服务的方式,把一个项目拆成多个工程,分别迭代开发和部署;另一方面,很多基础的基础还不是很完善,比如容器、容器管理工具、持续集成,要么是没有,要么是难以用在生产环境中。

所以我们项目只拆分出来五六个工程,包括定式服务、接口服务、前端页面等;除了前端页面这个工程要依赖接口服务之外,其余几个工程彼此可以单独部署,很多功能是通过MQ解耦。

分层

单个工程中,分包都是一样的,也和主流的代码分层差不多:

Model层:就是普通的Jave Bean,数据的实体对象,和数据库列名保持一致;

DAO层:Data Access Object,数据访问对象,我们用的是MyBatis,在方法的注解中写SQL语句;

Service层:业务逻辑层,这里可能调用其他的Service或DAO;

Controller层:请求处理层,包括入参回参的类型转换、入参验证等功能在这里完成;

Domain层:我们把回参单独做了一层,没有和Model层混在一起;就算一个接口要查询一个单表,查询结果也要把Model转成Domain;我们在Domain这一层做了很多字段的标准化,保持见名知意;

剩下的就是Util、Contants、Config等等。

做到现在的阶段,也遇到了一些问题,也在想办法解决:

一些可以通用的类,在几个包中都存在,有的时候修改起来要修改好几个工程,挺麻烦的,准备把这些通用的东西提出来放在单独的一个工程中;

接口现在放在一个工程中,我认为是有些不合理的;接口应该可以分成原子服务和组合服务,这里至少要分成两层,原子服务稳定,改动的频率很低;组合服务应该是快速迭代的,会根据需求不断地修改和增加。但是苦于没有很多基础设施,纯人工的话又很难支持。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如有侵权行为,请第一时间联系我们修改或删除,多谢。

相关文章