背景
Spring Boot框架对工程结构没有什么特殊的限制,良好的工程结构划分可以使项目更清晰,提高代码的统一性.
环境
jdk 1.8
spring boot 2.1.6
maven 4.0.0
intellj idea 2018.2
window 10
maven配置
先上配置文件,包依赖比较清楚
实操
新建项目
使用Spring Initializr,按照步骤创建spring boot项目
设置项目group,唯一id,java版本,构建工具等等
选择spring boot 版本和其他包依赖,这里有2个包建议选上,开发阶段devtools会在文件发生改变的时候自动重启正在运行的应用,在本地开发的时候很方便。lombok主要是解决大量的bean需要写Getter和Setter,构造器,equals,以及toString等方法。用lombok可以通过注解的方式自动生成,大大节省时间。同时后面用到Slf4j注解的时候也是需要用到lombok的。
选择web依赖
设置项目保存路径
点击Finish,生成项目的目录结构,如下:
打tag 1.0.0版本,提交代码。
git tag -a v1.0.0 -m "初始化代码"
git push origin v1.0.0
后面对改动做好版本管理工作
目录调整
根据网上的文章整理的Spring Boot 推荐目录结构
代码层的结构
1.工程启动类(ApplicationServer.java)放在包根目录
2.实体类(domain)放在domain
3.数据访问层(dao)放在dao
4.数据服务层(service)放在service,数据服务的实现接口(serviceImpl)放在service.impl
5.前端控制器(controller)放在controller
6.工具类(utils)放在utils
7.常量接口类(constant)放在constant
8.配置信息类(config)放在config
9.公用类(common)置于common
资源文件的结构
1.配置文件(.properties/.json等)置于config文件夹下
2.国际化(i18n))置于i18n文件夹下
3.spring.xml置于META-INF/spring文件夹下
4.页面以及js/css/image等置于static文件夹下的各自文件下
调整后目录如下:
这个项目主要是要不断完善演进。虽然现在是all in one,但是考虑要拆分成微服务。最后还是按照业务的模块在顶层在封装一层目录,以后modules里面的模块根据需要会变成单一的服务,最终的目录结构如下:
打tag 1.0.1版本,提交代码,备注项目目录调整。
git tag -a v1.0.1 -m "目录调整"
git push origin v1.0.1