您现在的位置是:首页 > 新闻 > 正文

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

2022-09-16 05:21新闻

简介 我现在负责的项目,并没有遵守什么外部严格的代码分层规范,因为项目的架子都是我一个人搭建的,所以很多地方都是以个人的经验做的设计,甚至有些地方掺杂了一些个人的喜好。...

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

分包

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

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

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

分层

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

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

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

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

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

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

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

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

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

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

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

Tags:怎么 / 一般 / 项目 / 你们 / 代码 / javaweb / 都是 / 设计 / 

东营金盾司法学校(东营金盾司法警官学校怎么样) 英雄联盟去衣(LOL刚买的冰雪节剑圣,进游戏后却成了原皮肤,网 莱阳中心医院(莱阳东方医院在哪里?怎么走啊。/?有谁知道) 桃花岭公园(桃花岭公园多高) 心痛的无法呼吸文字(心痛的无法呼吸意思) 新白娘子传奇小青瘦了吗(左小青和宋慧乔谁长得更漂亮) 郑州黄帝故里拜祖大典(河南皇帝故里拜祖大典和陕西黄帝陵祭祖 公交上不反抗反而配合(在公交司机遇到被攻击的紧急情况时,你 县城小本创业项目(想在县城里开个玩具店可以开嘛) 微信头像和背景图一套(有什么好的QQ、微信背景版和头像)