当前位置:网站首页>代码目录结构
代码目录结构
2022-08-09 06:21:00 【ggaofeng】
1、有人是这样规划目录的
conf --> 数据库连接池(因使用了配置服务器,必须有)
model --> 实体类
controller --> 接口访问层
mapper --> 数据库访问层
service --> 业务处理层
impl --> 业务处理实现类
util --> 工具类
vo --> 表现层对象
2、还有人是这样的
3、按照DDD,有人建议这样
- application
- interfaces
- domain
- repositories
- gateways
- controllers
- persistence
- mq
- client
- ...
application 对应DDD的应用层,主要内容为该限界上下文中所有的应用服务
interfaces 对gateways中除persistence之外的抽象,包括访问除数据库之外其他外部资源的抽象接口,以及访问第三方服务或其他限界上下文服务的抽象接口
domain 对应DDD的领域层,为了更好地体现repositories在基础设施层扮演的与外部资源打交道的网关语义,将repositories单独分离
repositories 代表DDD中战术设计阶段的资源库,如果不复杂,可合并到domain
gateways 对应DDD的基础设施层,其下可以视外部资源的集成需求划分不同的包
1)controller是对客户端提供接口的北向网关,等同于上下文映射中开放主机服务(OHS)的概念
2)persistence对应了repositories抽象
3)其余网关对应interfaces抽象,其中client包下的实现类与interfaces下的对应接口组合起来,等于上下文映射中“防腐层(ACL)”的概念
4、还有这样的
-- application 应用层
-- event 事件
-- publish 事件发布
-- subscribe 事件订阅
-- service 应用服务
-- domain 领域层
-- aggregate名称 聚合根目录
-- entity 实体
-- event 事件
-- repository 仓储
-- service 领域服务
-- aggregate名称
-- entity 实体
-- event 事件
-- repository 仓储
-- service 领域服务
-- infrastructure 基础设施层
-- config 存放配置相关
-- util 存放第三方服务
-- eventbus 事件总线
-- mq 消息中间件
5、目录结构1中,controller差不多就包含了api/rest
因为spring mvc是mvc结构,controller是这样的
@controller
public class xxxController{
@RequestMapping("/hello")
public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest,
javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView("index");
mav.addObject("message", "Hello Spring MVC");
return mav;
}
}
代码大概就是这样的。
业务处理,返回数据。这个就是M(模型)层。
JSP或其他模板文件,就是V(视图)层。
这个controller对象,就是C(处理器)层。
springboot还是保留了controller这个单词(这个词在mvc中有意义,在ddd中没有意义)。同时也有rest这个词。
@RestController
public class Restful {
@GetMapping("/hello1")
public String hello1(@RequestParam String name,@RequestParam int age) {
在dropwizard中就没有controller这个单词了。他是标准的rest,认为所有东西都是Resource(资源)
public class HelloWorldResource {
@GET
@Path("/hello-world")
public Saying sayHello(@QueryParam("name") Optional<String> name) {
边栏推荐
- AIOT介绍
- workbench 数据导出
- 运算放大器(OPA)超详细参数讲解-运放---以及8个型号的运算放大器分析对比
- 关于如何查找NXP S32K1xx系列单片机的封装信息和引脚定义
- Magnetic Core-Shell Fe3O4 Particles Supported Gold Nanostars | Magnetic Fe3O4-POSS-COOH | Superparamagnetic Fe3O4-Polydopamine Core-Shell Nanoparticles
- 在命令行打开LaTeX宏包手册
- VB.net程序关闭后后台还在与SQL连接
- 废品回收小程序、APP UNIAPP开发带有用户端和回收员端
- 二十四节气之立秋
- How to pass a two-dimensional array to a function in C language?
猜你喜欢
[email protected]@cadmium sulfide nanocore-shell structure material|Fe3O4 magnetic nanop"/>
Superparamagnetic iron [email protected]@cadmium sulfide nanocore-shell structure material|Fe3O4 magnetic nanop
力扣刷题180
pdf加密、找回密码
牛客每日刷题之链表
Gao Zelong, a famous digital collection expert and founder of the Digital Collection Conference, was interviewed by China Entrepreneur Magazine
Fe3O4/SiO2 Composite Magnetic Nanoparticles Aminated on SiO2-NH2/Fe3O4 Surface (Qiyue Reagent)
Excel受保护的工作表怎么操作?
excel表格如何不需鼠标往下拖动而自动往下填
获取开发版安全码SHA1时遇到的报错
PDF不能打印和复制的问题如何解决?
随机推荐
Online tool for sorting multi-line strings
vs番茄助手的方便功能和便捷快捷键介绍
kubernetes security
【JMeter】jmeter测试 - 上传多个图片/批量上传图片接口 CSV文件参数化方法
声母-字母查询工具-词语缩写查询在线工具
The 24th day of the special assault version of the sword offer
se2clam
SiO2-NH2/Fe3O4表面氨基化的Fe3O4/SiO2复合磁性纳米粒子(齐岳试剂)
文本字符串长度排序 - 在线工具
Harbor Enterprise Mirror Warehouse Construction
手把手教你用C语言制作七夕流星雨---优雅永不过时(详细教程)
[R language] Extract all files under a folder to a specific folder
牛客每日刷题之链表
程序性能分析 —— 复杂度分析
【Feel】In the Unity Feel plugin, Camera cannot display CameraShake correctly
2022-08-08:给定一个数组arr,表示从早到晚,依次会出现的导弹的高度。 大炮打导弹的时候,如果一旦大炮定了某个高度去打,那么这个大炮每次打的高度都必须下降一点。 1) 如果只有一个大炮,返回
力扣刷题180
著名数字藏品专家、数藏大会创始人高泽龙接受中国企业家杂志采访
中英文说明书丨CalBioreagents 醛固酮单克隆抗体
How to find package information and pin definitions for NXP S32K1xx series microcontrollers