前期新建parent和module可以参考 https://blog.csdn.net/freyaalisa/article/details/78482834。
重点是问题
1 引入module后,一般启动类添加在web。把主pom内的 以下插件移动到web的pom内。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
2 idea快捷键 ctrl+alt+shift+s 出现页面
此时引入module。可是发现编译失败。错误如下 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile。。。。
看了下web的pom文件,发现依赖未自动引入。手动引入modoule如下
<dependencies>
<dependency>
<groupId>cn.chinesestar</groupId>
<artifactId>common-utils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
此时编译通过。(不知是不是我的idea没有进行相关配置。没有自动引入依赖)
注意!!!模块化之前首先画依赖图。防止双向依赖和循环依赖出现。若是出现循环依赖或者双向依赖,可将依赖部分文件进行水平平移或者抽取整合为一个大模块进行解决。
springBoot模块化项目比较明显的问题
1 有可能出现启动成功但是未加载类。此时观察main启动类位置(所在包)。如com.demo内,则其他任意类要放在此结构后,如com.demo.web***。
2 application.yml配置文件所处位置。最简单的就是放在web所在module。当作全局配置。容器启动会自动加载。