Java Web 项目包建议设计
Contents
以下这些都只是从工作中,思考出来的,只是在下自己的拙见。一个好的包设计, 可以让项目更加清晰具体。
com.company.dao.pojo
这里存放的是与数据库对应的表的POJO
com.company.dao
这里存放最原子的数据库操作的代码,每一个类的操作,都有一张与之对应的表。它只向 com.company.dao.service
层提供服务。
com.company.dao.service
这里存放的是对 com.company.dao
的管理服层,因为有些关系不是只是操作一张表的, 可能要对两张或以上的表进行事务操作。这时, 就应该把这些操作放在这里。
com.company.controller
这里存放的是所有 controller
的类,即Restful API
层。前端可以直接访问的方法就放在这里。
com.company.task
这里存放的是所有与task相关的类。比如用了spring task
的服务的类都放在这里。(如果有的话)
com.company.rabbitmq.queue
这里存放的是所有与消息队列进队相关的类。
com.company.rabbitmq.listener
这里存放的是所有与消息队列出队相关的监听器的类
com.company.utils
这里存放的是所有与工具类相关的类
com.company.pojo
这里存放的是除了DB的映射关系的POJO以外的POJO
com.company.constants
这里存放的是与常量有关的类
com.company.redis
这里存放的是所有与redis操作相关的类
com.company.filter
这里存放所有filter类
com.company.inteceptor
这里存放所有interceptor类
com.company.service
为其他类提供的服务类,因为有些时候,使用Utils静态工具类,无法注入Spring的依赖,这时可以使用@service
来注解某个服务类,为其他类提供服务,又可以使用Spring的DI优点。
因为Spring默认下是对象是单例的。所以不必担心对象实例化过多的问题。