1、模块父子工程创建

  • 1.创建一个Maven工程作为父级工程(总管模块工程的公共配置)
          直接Next不用做任何选择,建立一个Maven工程
  • springboot 子类实例化时 父类中的 注入 springboot父子模块_Spring boot模块工程

  • 2、Maven父级工程下创建Spring-boot模块工程
          Maven父级工程下创建Spring-boot模块工程,new module时,可以选择Spring Initializr
  • springboot 子类实例化时 父类中的 注入 springboot父子模块_spring_02

  • 2、pom.xml配置,模块工程之间的相互引用
          maven父工程pom配置
  • springboot 子类实例化时 父类中的 注入 springboot父子模块_Spring boot模块工程_03

  •       maven子模块工程配置
  • springboot 子类实例化时 父类中的 注入 springboot父子模块_spring_04

3、工程整理

  • 按以上搭建完毕之后,删除父工程下的src文件夹,父工程只负责管理模块功能依赖引用
  • 删除service,dao,core…(命名不限)各个子模块工程下的resource文件夹,以及java文件夹下的Application启动类(Spring Initializr自动创建的)。只保留web(一个完整的启动工程)不动

4、Install工程打包

  • 不能正常打包,则创建配置存在问题,根据提示解决,一般在模块工程依赖时问题容易出现

5、创建模块工程出现的几个问题,解决办法:

  • 1、子模块之间相互引用,打包时报cat’t find XXXX:检查pom依赖,以及被依赖的工程文件夹路径,groupId artifactId等配置
  • 2、Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:XX(default-XXXX) :工程依赖了
<plugin>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-maven-plugin</artifactId>
     </plugin>
     系统会自动检测工程的main方法,在SpringTest类中随便实现一个main hello world,或者取消依赖即可
  • 3、Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:XXXX (default-XXXX) on project skill-research-service
去掉plugin依赖后,依旧可能会报错,因为XXXApplicationTests中使用了如下注解
		@RunWith(SpringRunner.class)
		@SpringBootTest
		去掉即可

6、Install工程打包成功

springboot 子类实例化时 父类中的 注入 springboot父子模块_xml_05


7、模块工程引用注入

工程成功建立后,api模块引用service工程接口类进行注入。这一步若idea检测报错,检查模块工程依赖信息是否正确

springboot 子类实例化时 父类中的 注入 springboot父子模块_spring_06


8、启动工程配置

  • 1、配置依赖:步骤工程整理中,保留了一个完整的启动工程,在启动工程的pom.xml依赖中,依赖模块入口工程。
    这样在工程打包上线,或者启动聚合工程时,才能识别到各个模块。
  • springboot 子类实例化时 父类中的 注入 springboot父子模块_xml_07

  • 2、启动扫描位置配置
    spring-boot启动时,会自动扫描启动类文件夹下所有文件,然而聚合工程文件在不同的模块中,这时候就需要在启动时配置扫描路径。
    这里是扫描所有模块工程的公共位置
  • springboot 子类实例化时 父类中的 注入 springboot父子模块_spring_08

  • 3、启动时,若报错,找不到xml,或者mapper,启动类指定一下mapper扫描位置,父工程pom.xml指定xml打包位置,启动工程properties配置xml扫描位置即可
    Field iMsFansService in com.lonewolf.api.controller.MsFansController required a bean of type ‘com.lonewolf.service.mapper.MsFansMapper’ that could not be found.
  • springboot 子类实例化时 父类中的 注入 springboot父子模块_spring_09


  • springboot 子类实例化时 父类中的 注入 springboot父子模块_spring_10


  • springboot 子类实例化时 父类中的 注入 springboot父子模块_spring_11