项目的包结构一般划分约定

avatar

有时候一个web框架拿到手了,跑起来hello world后,然后一般都会比较迷茫,路由放哪呢?dao层放哪呢?下面来说两种常用的分包结构

假如有个项目,涉及到 用户 话题 评论

功能模块分

建一个 module 文件夹,放这些模块的,结构如下

.
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── demo
        │               ├── config
        │               ├── module
        │               │   ├── comment
        │               │   │   ├── controller
        │               │   │   ├── dao
        │               │   │   ├── model
        │               │   │   └── service
        │               │   ├── topic
        │               │   │   ├── controller
        │               │   │   ├── dao
        │               │   │   ├── model
        │               │   │   └── service
        │               │   └── user
        │               │       ├── controller
        │               │       ├── dao
        │               │       ├── model
        │               │       └── service
        │               └── utils
        └── resources
  • controller 路由
  • dao 也可以写成 repository(spring-boot) mapper(mybatis) 等,操作数据库的类都放在这里
  • model 也可以写成 pojo entity 意思都差不多,放实体类的
  • service 服务,controller跟dao交互的桥梁,可以封装一些复杂的业务逻辑,另外事务也是在这里加的,切记不要在这里面用try catch,否则事务将失效

按功能划分

将不同的功能放在一个包里,比如路由都在一个包里,service都在一个包里,这样划分相对简单些,结构如下

.
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── demo
        │               ├── config
        │               ├── controller
        │               ├── dao
        │               ├── model
        │               ├── service
        │               └── utils
        └── resources

总结

  • 功能模块分 适用于大项目,模块非常多的那种,这样划分结构更清晰,有利于团队合作开发
  • 按功能划分 适用于小项目,模块比较少的,因为功能模块比较少,所以放在一起,维护找起来比较方便
0 条评论

目前还没有回答,快来帮帮TA吧!

添加一条评论 请尽量发布对他人有帮助的评论

登录后可发布评论

登录 | Github登录