zoukankan      html  css  js  c++  java
  • 34 springboot项目之间依赖导致bean 无法加载问题

    方式一(OK)

    模块A引入模块B ,但是模块B的bean一直注入不进来

    原因: A模块的Application是在com.xx.xx包下,那么势必只能扫描到这个包下的bean, B模块的Application是在com.xxx包下,那么在A引入B以后就A就肯定扫描不到他上层包的bean

    解决办法:

    1.将A模块和B模块的Application置于相同路径下,例如com.xx下(只是名称一致,不是真的在同一包下)

    2.使用@ComponentScan(value="com.xx")注解,指定扫描的包路径

    3.此时@SpringBootApplication的扫描包路径已经不起作用,即便显示声明也没用(scanBasePackages)

     

    @ComponentScan会取代@SpringBootApplication注解的scanBasePackages,

    所以如果A模块的包名和B模块的包名不一致的话,要把A,B的包分别放到@ComponentScan中,

     


     

    (注:这个和上面的无关)

     不使用Spring boot自带的打包插件

    不能使用springboot项目自带的打包插件进行打包:

    <build>
       <plugins>
          <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
       </plugins>
    </build>

    而应当使用传统项目的maven打包:

    <build>
       <plugins>
          <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-compiler-plugin</artifactId>
             <configuration>
                <source>1.8</source> <!--指明源码用的Jdk版本-->
                <target>1.8</target> <!--指明打包后的Jdk版本-->
             </configuration>
          </plugin>
       </plugins>
    </build>

    因为springboot-maven-plugin打包的第一级目录为Boot-INF,无法引用.

    并install到本地maven库中:

    maven clean install
  • 相关阅读:
    如何在 Linux 上用 IP转发使内部网络连接到互联网
    python 基础-文件读写'r' 和 'rb'区别
    处理HTTP状态码
    国内可用免费语料库(已经整理过,凡没有标注不可用的链接均可用)
    java读取大文件
    struts.properties的参数描述
    ResourceBundle使用
    linux定时任务的设置
    杂记
    JAVA动态加载JAR包的实现
  • 原文地址:https://www.cnblogs.com/guchunchao/p/10783726.html
Copyright © 2011-2022 走看看