🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
在日常开发中,业务模块的包结构划分一般划分为三个`config`、`core`、`modular`或者四个`common`、`config`、`core`、`modular` 其中`common`为模块内通用的注解、常量、枚举、异常和持久化的实体等,若`common`不单独划分一个包,则可以把common包放到core包下面 `config`包存放整个模块的配置类,因为项目基于spring boot开发,大部分的spring配置都换成了java bean方式的配置,所以单独分一个包来存放配置,`config`包中除了存放配置类,还有一些以`Properties`结尾的类,这些类的作用是启动应用的时候把`application.yml`中的配置映射到类的属性上,使用时需要注意以下几点  ![image_1c4t9rbev13cu136916qj1n6j1fr49.png-48.5kB](https://img-blog.csdnimg.cn/20181228174639902) `modular`存放按业务划分的业务代码,若本模块中包含多个模块业务,则在`modular`中建立多个业务包,在具体的业务包下再建立`controller`、`dao`、`service`、`transfer`、`warpper`这几个包,其中`transfer`为前后端传输数据所用的属性封装,`warpper`为对返回结果的包装器(下面会介绍到),如果当前模块中只存在一类业务,那么没有必要在`modular`包下再建立多个业务模块,可直接在`modular`模块建立`controller`、`dao`、`service`、`transfer`、`warpper` `core`包存放当前模块所运行的一些`核心机制`,例如全局的异常拦截器,日志AOP,权限的AOP,项目初始化后的监听器,工具类等,还可以存放一些对某些框架的`扩展`,例如对beetl模板的扩展配置和工具类,对flowable的扩展类,Shiro的一些拓展类等等 这样拆分的好处在于把业务,配置和运行机制清晰的拆分开,提高项目的可维护性,加快项目的开发效率!