代码目录结构
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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
