springboot多模块开发 配置文件以及包扫描的大坑(打包问题在后面)

前言 :排坑一天 终于解决 网上没有太好的说法 自己整理了一下

一.配置文件 注意

  1. 关于多模块开发配置文件 主模块的配置文件 必须application.yaml开头(我当时主模块是web模块 所以声明是application-web.yaml 一直报错 啥数据库连接url找不到呀 。。。这里要注意!)
  2. 引入其他模块配置文件的时候 其余模块配置文件 要以application-xxx.yaml为名 然后在主模块的配置文件中 使用
spring:
  profiles:
    include: service,dao,common,... 
    #service,dao...指的是application–xxx.yaml中
    xxx的名字
    #本人试过 用active也行 但尽量还是include 

进行引用 (不一定要yaml哈 properties/yml也一样 )

二.启动类扫描包注意 注意

  1. 主类的启动类 使用scanBasePackages 指 定扫描其余模块 (当然也可以使用@ComponentScan)
  2. 当启动类显式指定了 扫描其他模块包路径时 启动类将不会自动扫描本模块下的注解了 所以此时 看代码
@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引入即可 注意不要循环依赖

四.打包 我几乎所有问题都遇到了 网上答案也千奇百怪 看我下方就行

点击跳转 springboot多模块 打包问题解决


版权声明:本文为qq_50521520原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。