前言 :排坑一天 终于解决 网上没有太好的说法 自己整理了一下
一.配置文件 注意
- 关于多模块开发配置文件 主模块的配置文件 必须application.yaml开头(我当时主模块是web模块 所以声明是application-web.yaml 一直报错 啥数据库连接url找不到呀 。。。这里要注意!)
- 引入其他模块配置文件的时候 其余模块配置文件 要以application-xxx.yaml为名 然后在主模块的配置文件中 使用
spring:
profiles:
include: service,dao,common,...
#service,dao...指的是application–xxx.yaml中
xxx的名字
#本人试过 用active也行 但尽量还是include
进行引用 (不一定要yaml哈 properties/yml也一样 )
二.启动类扫描包注意 注意
- 主类的启动类 使用scanBasePackages 指 定扫描其余模块 (当然也可以使用@ComponentScan)
- 当启动类显式指定了 扫描其他模块包路径时 启动类将不会自动扫描本模块下的注解了 所以此时 看代码
@SpringBootApplication(scanBasePackages = "com.jingyi.*")
此处我只是指明了 一个包路径 为什么呢 因为 一般开发 多模块 前缀都是以公司名命名 所以 我四个模块的前缀 都是以com.jingyi.xxx.xxx开头 所以 可以直接这样指定扫描 !!!但是你如果前缀不一样 是下面这样扫描的 声明:本人主启动类在web模块 所以这边没有指明扫描web下的注解 最先以为启动类在web下 所以没有指定 但运行不报错 使用时 却404
@SpringBootApplication(scanBasePackages =
{"com.jingyi.myblogservice"
,"com.jingyi.myblogdao"
,"com.jingyi.myblogcommon"})
!!!请务必记住 这样在主类扫描包的话 必须 再加上 主类的包扫描路径 如下 本人主模块是web
@SpringBootApplication(scanBasePackages =
{"com.jingyi.myblogservice"
,"com.jingyi.myblogdao"
,"com.jingyi.myblogcommon"
,"com.jingyi.myblogweb"})
三.其余小问题 网上都能找到解决办法 下面也说明了一些
1.父模块
- 父pom 需要指定
<packaging>pom</packaging>
- 父pom 需要指明 子模块
<modules> <module>my-blog-dao</module>.... </modules>
- 父pom 同一管理 依赖版本
<properties>。。。。自定义 </properties>
- 父pom 的上级父亲还是springboot哈 此处不要更改
2.子模块
<parent>指向父pom 三个属性 groupId artifactId version</parent>
- 子模块需要引用其他模块时 直接dependency引入即可 注意不要循环依赖
四.打包 我几乎所有问题都遇到了 网上答案也千奇百怪 看我下方就行
版权声明:本文为qq_50521520原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。