一、创建SpringBoot项目
使用Idea创建一个SpringBoot项目,目前只添加了web和test依赖,创建完成结构如下图
删除src和一些无用的东西
二、创建子模块
右键上一步建的项目,选择New->Module
选择Spring Initializr创建子SpringBoot项目
创建三个子项目1
2
3data
service
web
创建完成后项目的结构图:
- data用于数据访问层
- service为业务层,该模块依赖data模块
- web为前端提供api接口,该模块依赖service模块
各个模块的代码,详情码云
三、项目的打包
项目的打包,只需要在web模块,所以,不管是父项目还是data、service子模块中的pom.xml都不需要添加spring-boot-maven-plugin插件只需要在web模块添加
1 | <build> |
然后再Idea窗口的右边点击Maven Projects
,选择父项目springboot-modele
(带一个root的),展开Lifecycle
,点击package
,则开始进行项目的打包。
打包完都提示全部成功,就可以在web模块下的target文件夹下有打包完成的jar包。
可用下面命令运行该jar包1
java -jar web-0.0.1-SNAPSHOT.jar
四、遇到的问题
service模块无法注入data模块的repo类(data模块用的是jpa),web模块无法注入service模块的service类
一开始怀疑是没扫描到该层的包,所以在web子模块的WebApplication类上增加注解@ComponentScan("com.xpp")
不起作用,最后搜索到一篇文章。
解决方法:移动web模块的WebApplication类
一开始WebApplication类的位置如图:
右键WebApplication类,选择Refactor->Move
弹出:
将com.xpp.web修改成com.xpp,修改后点击Refactor
最终WebApplication类的位置: