首页 >

JavaWeb项目,你们一般都是怎么设计代码分层的? – 网络|

罗伯特梯度算法怎么算,中文简体美式键盘怎么删除,网站建设怎么申请域名JavaWeb项目,你们一般都是怎么设计代码分层的? - 网络|JavaWeb项目,你们一般都是怎么设计代码分层的

分包

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

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

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

分层

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

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

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

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

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

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

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

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

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

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

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


JavaWeb项目,你们一般都是怎么设计代码分层的? - 网络|
  • 联想电脑开不了机,修复均显示错误代码0x0,屏幕老显示在正在启动页面? - 网络|
  • 联想电脑开不了机,修复均显示错误代码0x0,屏幕老显示在正在启动页面? - 网络| | 联想电脑开不了机,修复均显示错误代码0x0,屏幕老显示在正在启动页面? - 网络| ...

    JavaWeb项目,你们一般都是怎么设计代码分层的? - 网络|
  • 如何看待河北科技大学韩春雨组发表高分论文,开发出新型RNA追踪平台? - 网络|
  • 如何看待河北科技大学韩春雨组发表高分论文,开发出新型RNA追踪平台? - 网络| | 如何看待河北科技大学韩春雨组发表高分论文,开发出新型RNA追踪平台? - 网络| ...

    JavaWeb项目,你们一般都是怎么设计代码分层的? - 网络|
  • VScode编辑器如何搭建JAVA和Python的编译和调试运行环境? |python diaoyongc
  • VScode编辑器如何搭建JAVA和Python的编译和调试运行环境? |python diaoyongc | VScode编辑器如何搭建JAVA和Python的编译和调试运行环境? |python diaoyongc ...